ROS 基础命令


ROS华为源镜像

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}
)
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2021 Nqq

你的鼓励是我学习的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值