ROS1理论与实践教程二次学习

第二次跟着赵虚左老师学习ROS进行的一些基本问题的总结,有些语言比较接地气,主要是为了更好的理解,学得比较浅薄,对自己来说觉得收获很大,如果内容有问题希望可以指正!!!


目录

一、命令行复习

二、和Windows有关

三、好用的代码


一、命令行复习

1.智能车比赛基本命令

①.rviz   source ./devel/setup.bash

        roslaunch   urdf01_rviz  demo01_helloworld.launch

②.gazebo  source ./devel/setup.bash

         roslaunch  urdf02_gazebo  demo01_helloworld.launch

③.自主运行

  1. roslaunch racecar Run_car.launch  开启传感器,雷达laser.launch
  2. 进入cd racecar/src/racecar_drive/src/后
  3. roslaunch racecar race_laser race_laser_pub.launch

④roslaunch 运行.launch文件,可同时启动多个节点

  1. 用roslaunch不用roscore
  2. 用rosrun必须先单独一个终端启动roscore
  3. roscore是所有节点启动的核心

2.①ROS终端C++代码在工作空间下编译catkin_make会在工作空间出现devel、build文件,src源文件,三个(目录)处于同一级

  • 工作空间(自定义)
  • src子目录
  • 功能包(自定义)
  • src放C代码(源文件),scripts放python代码

C++

Python

所放目录

src

scripts

原文件

名后缀

自定义文件名.cpp

自定义文件名.py

添加可执行权限

不需要

法一:

$chmod +x 自定义文件名.py

法二:给所有python文件添加$chmod +x *.py

$ll

配置文件Cmakelist.txt

Ctrl+/

自动去除注释

(136行)

add_executable(源文件名1  src/源文件名2.cpp)

(149行)

target_link_libraries(源文件名1  ${catkin_LIBRARIES})

(162行)

catkin_install_python(PROGRAMS scripts/自定义文件名.py

  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

)

是为了指定解释器,noetic版本特定的python

源文件名1和2可以一样或不一样,不一样运行1.(一般1和2一样)

执行代码roslaunch/rosrun  + 功能包名  + 被运行的源文件名(跟配置文件前面映射的那个名字一致)

下面11点有示例

注释

/*   

*/

//

‘’’

‘’’

#

注意事项

要编译

代码内指定解释器

Python 版 helloworld

Vscode中编译ros                                                                                                          

为了频繁编译省事:

  •      快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build点击后面的小齿轮
  •      可以点击配置设置为默认,修改.vscode/tasks.json 文件
  •      选定 src 右击 ---> create catkin package
  •      设置包名,添加依赖rosccpp rospy std_msgs

②编译catkin_make要在工作空间下,roslaunch不需要进入工作空间。

3.不source ./devel/setup.bash编译不成功,可以在brashrc里加入source ./devel/setup.bash(在C代码编译后进行),每次也不用再刷新环境变量

  • Ctrl+H调出主目录下的隐藏文件
  • 找到.bashrc文件
  • 最后一行加入source ~/工作空间/devel/setup.bash
  • 保存
  • 终端输入source .bashrc

可以在任意终端下执行要执行的源文件,不用在对应工作空间下source ./devel/setup.bash后才能执行。

刷新环境变量要在工作空间下,不然也会报错

4.创建完功能包名后就不能更改了,更改也没用,执行源文件还是会报错找不到功能包roslaunch/rosrun  + 功能包名  + 被运行的源文件名(不用带后缀.cpp或.py),配置文件写的是执行源文件)

注意事项:配图理解

  • 执行源文件要回到对应工作空间目录下
  • python添加可执行权限要在源文件目录下打开终端进行
  • 配置文件时,C++有对应映射名,去掉.cpp即可,python没有

 5.Python之前的版本不需要配置文件,noetic需要

主要作用是:可以正确安装python脚本,帮我们定位到合适的python解释器执行python脚本

配置的话自动定位到python3(ROS noetic 用的是python3解释器)

不配置要直接在代码里声明解释器为  #! /usr/bin/env python3

文档1.4.2里的------4.8里有具体解释

6..ros中内置的小乌龟,其实是配置好的功能包,后面学习还会用到导航用到的gmapping功能包等

  • $  apt search ros-noetic-*    搜索到ros-noetic版本下网络上可用的所有功能包
  • 进一步具体搜索用$  apt search ros-noetic-* | grep -i gmapping    
  • 可以根据需要安装$  sudo apt install + 要安装的包

二、和Windows有关

1.ROS有好多版本,我用的是ROS  noetic,  cd /opt/ros/noetic/

用sudo apt-get install ros-noetic-desktop-full  

还有,ROS melodic版本ROS kinetic版本

注:2022版的Ubuntu软件源会出现问题

2.想要使用windows上的截屏,可以Ctrl+Alt将鼠标指针从虚拟机中移除后使用快捷键截屏然后粘贴在文档上。

3.ROS有对应官网页http://wiki.ros.org/


三、好用的代码

1.进入vscode

cd  工作空间名

code .

2.计算图的使用

  • rosrun rqt_graph rqt_graph即rosrun+功能包名+节点名
  • 也可以在命令行直接输入rqt_graph也可以启动这个节点

使用方法:

  • 一个终端启动功能包节点
  • 新开一个终端,rosrun rqt_graph rqt_graph

 <node  pkg="功能包名"  type="可执行源文件名"  name="对节点另起的一个名字"  output="screen" /> 

launch文件里一个节点写完要加<node     />,像C语言中的分号,代表结束

  • 想要在终端输出日志(内容)得加上output="screen"
  • name名会在rqt_graph中出现,一个name名对应一个节点node
  • name相当于别名,防止和其他节点的冲突,替换初始化的节点名
  • 箭头上方是两个节点交互数据的一种方式
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不想努力又想飞

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值