ROS 2常用工具:让机器人开发更便捷
Launch:多节点启动与配置脚本
多节点启动脚本
3.1.1 多节点启动方法
命令行参数配置
3.1.2 命令行参数配置
资源重映射
3.1.3 资源重映射
$ ros2 launch learning_launch remapping.launch.py
$ ros2 topic pub --rate /turtlesim1/turtle1/cmd_vel geometry_msgs/msg/Twist "{linear: {x:
2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}"
ROS参数设置
3.1.4 ROS参数设置
tf:机器人坐标系管理系统
3.2 tf:机器人坐标系管理系统
tf 命令行操作
3.2.2 tf 命令行操作
安装成功后,在终端中输入如下命令,启动海龟跟随示例及键盘控制节点。
查看tf树
查询坐标变换信息
坐标系可视化
静态tf广播(Python)
3.2.3 静态tf广播(Python)
静态tf广播(C++)
3.2.4 静态tf广播(C++)
动态tf广播(Python)
3.2.5 动态tf广播(Python)
$ ros2 run turtlesim turtlesim_node
$ ros2 run learning_tf turtle_tf_broadcaster --ros-args -p turtlename:=turtle1
$ ros2 run tf2_tools view_frames
动态tf广播(C++)
3.2.6 动态tf广播(C++)
$ ros2 run turtlesim turtlesim_node
$ ros2 run learning_tf_cpp turtle_tf_broadcaster --ros-args -p turtlename:=turtle1
$ ros2 run tf2_tools view_frames
tf监听(Python)
3.2.7 tf监听(Python)
$ 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 监听(C++)
3.2.8 tf 监听(C++)
$ ros2 run turtlesim turtlesim_node
$ ros2 run learning_tf_cpp turtle_tf_broadcaster --ros-args -p turtlename:=turtle1
$ ros2 run learning_tf_cpp tf_listener --ros-args -p target_frame:=turtle1
$ ros2 run turtlesim turtle_teleop_key
海龟跟随(Python)
3.2.9 tf 综合应用示例:海龟跟随(Python)
Gazebo:机器人三维物理仿真平台
3.3 Gazebo:机器人三维物理仿真平台
安装Gazebo
# 安装相关依赖
$ sudo apt-get update
$ sudo apt-get install lsb-release wget gnupg
# 安装Gazebo Harmonic
$ 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
# 安装Jazzy gz功能包
$ sudo apt install ros-jazzy-ros-gz
启动Gazebo
机器人仿真示例
3.3.2 机器人仿真示例
$ ros2 launch ros_gz_sim_demos diff_drive.launch.py
$ ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r
cmd_vel:=model/vehicle_blue/cmd_vel
传感器仿真示例
3.3.3 传感器仿真示例
RViz:数据可视化平台
tf数据可视化
3.4.3 应用示例一:tf数据可视化
图像数据可视化
3.4.4 应用示例二:图像数据可视化
rosbag:数据记录与回放
记录数据
3.5.1 记录数据
回放数据
3.5.2 回放数据
rqt:模块化可视化工具箱
rqt 安装与使用
3.6.1 rqt 介绍
日志显示
3.6.2 日志显示
图像显示
3.6.3 图像显示
ROS 2开发环境配置
3.7 ROS 2开发环境配置
版本管理软件git
3.7.1 版本管理软件git
# 下载一个项目和它的整个代码历史
$ git clone [url]
# 添加指定文件到暂存区
$ git add [file1] [file2] ...
# 添加指定目录到暂存区,包括子目录
$ git add [dir]
# 添加当前目录的所有文件到暂存区
$ git add .
# 删除工作区文件,并且将删除操作的文件放入暂存区
$ git rm [file1] [file2] ...
# 提交暂存区到仓库区
$ git commit -m [message]
# 列出所有本地分支
$ git branch
# 列出所有远程分支
$ git branch -r
# 列出所有本地分支和远程分支
$ git branch -a
# 新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
# 新建一个分支,并切换到该分支
$ git checkout -b [branch]
# 显示有变更的文件
$ git status
# 显示当前分支的版本历史
$ git log
# 下载远程仓库的所有变动
$ git fetch [remote]
# 显示所有远程仓库
$ git remote -v
# 显示某个远程仓库的信息
$ git remote show [remote]
# 取回远程仓库的变化,并与本地分支合并
$ git pull [remote] [branch]
# 上传本地指定分支到远程仓库
$ git push [remote] [branch]
# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变
$ git reset [file]
# 重置暂存区与工作区,与上一次commit保持一致
$ git reset --hard
# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变
$ git reset [commit]
# 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致
$ git reset --hard [commit]
# 设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"