ROS2智能机器人开发实践-阅读分享6-ros2常用工具分享
[复制链接]
ROS2智能机器人开发实践-阅读分享6-ros2常用工具分享
launch多节点启动和脚本配置
我们在启动节点时通常会想要一起启动多个节点时我们就可以使用launch工具:
ros2 launch learning_launch simple.launch.py
具体的代码如图所示,package是功能包的名字,executable是可执行文件的名字,除了需要编写launch.py文件,我们还需要把这个文件拷贝到install里面,这需要在setup.py里面实现。
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
(os.path.join('share', package_name, 'launch'), glob(os.path.join('launch', '*.launch.py'))),
(os.path.join('share', package_name, 'config'), glob(os.path.join('config', '*.*'))),
(os.path.join('share', package_name, 'rviz'), glob(os.path.join('rviz', '*.*'))),
],
以上就是launch的使用方法,当然具体的细节大家可以自己查看代码理解。
tf机器人坐标管理系统
我们需要先下载tf的功能包:
sudo apt install ros-jazzy-turtle-tf2-py ros-jazzy-tf2-tools
#这里我的版本是foxy那么就将jazzy换成foxy
sudo pip3 install transforms3d
安装完成后
ros2 launch turtle_tf2_py turtle_tf2_demo.launch.py
ros2 run turtlesim turtle_teleop_key
然后我们可以查看tf树:
ros2 run tf2_tools view_frames
这里要注意啦,由于不同版本的执行文件的名字不同,如果无法执行可以尝试:
发现我的版本的名字果然不一样需要添加.py
然后打开这个pdf可以看见这个tf关系了。
当然这个很不直观我们可以使用rviz2来可视化:如图
以上我们了解了tf,然后我们来学习如何使用(发布接收tf),tf分为静态和动态,顾名思义,静态的一般发布后不再改变,动态需要实时更新。
可能会运行不成功,如果你发现你的static_tf_broadcaster里面的import tf_transformations 报错那么你需要再执行:sudo apt-get install ros-<ros_distro>-tf-transformations 里面的ros_distro是你的版本
ros2 run learning_tf static_tf_broadcaster
ros2 run tf2_tools view_frames
动态广播和静态及其类似,这里的动态广播是在启动小乌龟后,获得小乌龟的pose话题然后发出tf话题。
ros2 run turtlesim turtlesim_node
ros2 run learning_tf turtle_tf_broadcaster --ros-args -p turtlename:=turtle1
ros2 run tf2_tools view_frames
最后我们来看一下tf监听的代码
ros2 run turtlesim turtlesim_node
ros2 run learning_tf turtle_tf_broadcaster --ros-args -p turtlename:=turtle1
ros2 run learning_tf tf_listener --ros-args -p target_frame:=turtle1
ros2 run turtlesim turtle_teleop_key
随后我们操控键盘就可以看见tf在变化了,具体的代码大家可以自己看,其实不难理解,主要是一些消息接口大家可能有点迷糊可以使用ros2 interface show来查看。
gazebo:机器人仿真平台
gazebo分为两大版本类似于ros和ros2,gazebo classic是旧的版本(之前看鱼香ros的教程教的就是旧版本),于此对应的有gazebo sim 新版本。不同的ros2和gazebo版本有关,大家要自行选择啊,别安装了错误版本,但是gazebo官网有下载教程,网址如下:
·
对于我个人的foxy版本对应的版本的安装代码(不用复制我的,前往官网复制):
sudo apt-get update
sudo apt-get install curl lsb-release gnupg
sudo curl https://packages.osrfoundation.org/gazebo.gpg --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
sudo apt-get update
sudo apt-get install gz-harmonic
然后启动 ign gazebo
这个版本的ign gazebo取代了gz sim大家要注意,其他的倒没有什么关系。
rviz2 和rqt
这两个的使用大家后续用到再说吧,可以自己搜说一下如何下载,都是我们最为常用的工具。
以上就是关于本书的第六次分享,分享内容多为书本内容,本人在此由于篇幅有限只是介绍核心内容,本文我介绍了一些ros2常用工具,当然我介绍的并不详细,但是大家至少都知道了我们的主要的使用工具,在后续的ros2开发中同学们可以边开发边学习,后续我们会结合书本和rdkx3开发板尽可能以实物为主来给大家介绍(仿真实际上起到的作用有限,限于篇幅作用,我会优先结合实物进行分析)!!!呜呜呜,看书累死了。。。。。
|