文章目录
- 常用命令
- ROS 空间创建
- 运行程序步骤
- (1) 一般情况
- (2) 多节点文件
- (3) Python文件
- 调试
- 实现
- 文件配置
- 配置C++文件
- 1. vscode配置
- 2. 配置CMakeList.txt
- 配置python文件
- 1. vscode配置
- 2. 设置权限
- 3. 配置CMakeList.txt
sudo sh -c 'echo "deb https://repo.huaweicloud.com/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- 将软件与更新设置成华为云
常用命令
- ctrl+h:调用隐藏文件
- ctrl + shift + b:可以编译程序
- ctrl+c:自动输出,表示程序结束的意思
- ctrl+f: 自适应调整界面大小,ctrl是指右手边的
- ctrl+shift+i:格式化
- ros依赖:roscpp rospy std_msgs
- tab:补齐
- rqt_graph:启动计算图
- rostopic echo fang:打印当前发布者发布的数据
- pwd:找到文件的路径,需要点击该文件,然后右击选择在终端中打开,再输入pwd。
- 源文件名称和映射名称保持一致
- argc:代表传入的参数的总数量,在本例中,第1个参数是程序名,第2、3个参数是12,34。共3个参数(服务通信里面例子)。argc[0]一定是程序的名称,包含了程序所在的完整路径。
- char* argv[]:是一个数组,每个元素存储的一个指针,就是穿进去的参数的地址。
- cd demo02_ws:启动当前工作空间
- 加空格,两次tab键,可以出现rosservice call addInts “num1: 0 num2: 0” addInts后面的内容
- Ctrl + ` (esc下面的键) :打开默认终端,界面保留关闭前的状态
- ctrl + alt + T : 打开新的终端
- shift + ctrl + T : 在当前终端同级打开新的终端(即在同一个终端中有两个选项卡)
- package.xml:可以增加依赖的功能包——roscpp,rospy,std_msgs
- rosnode list:查看结点
- rosrun teleop_twist_keyboard
- sudo apt-get install ros-noetic-teleop-twist-keyboard\
- pwd: 查看文件的空间位置(文件在终端打开)
如果roscore运行出现报错:
killall -9 roscore //如果提示未找到进程不用管,继续执行下一条
killall -9 rosmaster
ROS 空间创建
在终端中
mkdir -p demo02_ws/src
cd demo02_ws/
catkin_make
code .
contrl+shift+B: 选择catkin_make:build,配置task.json
运行程序步骤
(1) 一般情况
roscore
source ./devel/setup.bash ——刷新环境变量
rosrun + (文件名)hello_vscode(映射名称) hello_vscode_c
修改完CMakeLists.txt之后
首先运行roscore
然后是cd demo02_ws/
最后是source ./devel/setup.bash
接着时rosrun+功能包名:rosrun plumbing_pub_sub demo01_pub(运行后没有任何日志输出)
(2) 多节点文件
在vscode里面使用launch文件同时启动多个结点:
source ./devel/setup.bash
roslaunch hello_vscode start_turtle.launch
(3) Python文件
scripts在完成python程序之后,需要添加可执行权限,右击scripts选择在终端中打开,执行以下操作
chmod +x *.py
ll
调试
rosrun plumbing_pub_sub demo01_pub_p.py
rostopic echo che
实现
rosrun plumbing_pub_sub demo01_pub_p.py
rosrun plumbing_pub_sub demo02_sub_p.py
find_package作用:如果编译自定义的功能包plumbing_pub_sub的话必须依赖find_package里面的功能包。同时find_package里面的功能包依赖于catkin_package里面的功能包,最好在后面添加message_runtime
在没有关闭的终端中,按向上的箭头可以使用之前输入的命令
输入main,然后选择第2个,自动补齐,去掉const修饰符,就可以了
鼠标指向空号内,ctrl+shift+空格可以看到里面的定义
新建功能包时,一定要添加依赖,就是****roscpp rospy std_msgs
add_dependencies(demo03_pub_person${PROJECT_NAME}_generate_messages_cpp)作用:先保证msg被编译,然后被主要程序调用
文件配置
配置C++文件
1. vscode配置
配置c_cpp_properies.json 文件,如果以前已经配置且没有变更工作空间,可以忽略
{
"configurations": [
{
"browse": {
"databaseFilename": "",
"limitSymbolsToIncludedHeaders": true
},
"includePath": [
"/opt/ros/noetic/include/**",
"/usr/include/**",
"/xxx/yyy工作空间/devel/include/**" //配置 head 文件的路径
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
这里在devel文件里,右击功能包选择在终端里打开,使用pwd可以找到文件路径。
/home/rosnoetic/demo02_ws/devel/include/plumbing_server_client
2. 配置CMakeList.txt
一共有三个部分
add_executable(AddInts_Server src/AddInts_Server.cpp)
add_executable(AddInts_Client src/AddInts_Client.cpp)
add_dependencies(AddInts_Server ${PROJECT_NAME}_gencpp)
add_dependencies(AddInts_Client ${PROJECT_NAME}_gencpp)
target_link_libraries(AddInts_Server
${catkin_LIBRARIES}
)
target_link_libraries(AddInts_Client
${catkin_LIBRARIES}
)
配置python文件
1. vscode配置
进入settings.json 文件,如果以前已经配置且没有变更工作空间,可以忽略
{
"python.autoComplete.extraPaths": [
"/opt/ros/noetic/lib/python3/dist-packages",
]
}
2. 设置权限
右击scripts,选择进入终端执行
chmod +x *.py
ll
3. 配置CMakeList.txt
catkin_install_python(PROGRAMS
scripts/AddInts_Server_p.py
scripts/AddInts_Client_p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)