ROS学习笔记(持续更新)
安装ROS
1 | sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' |
海龟图
1 | roscore |
1 | rosrun turtlesim turtlesim_node |
1 | rosrun turtlesim turtle_teleop_key |
此时就可以通过键盘方向键来移动海龟了
常用工具
rqt_graph
1 | rqt_graph 查看ros中所有向量图 |
rosnode
rosnode list
1 | rosout 日志输出,提供给上层GUI |
rosnode info
1 | 查看正在发布哪些话题,订阅哪些数据,提供的服务,底层通讯机制的信息等 |
rostopic
rostopic list
rostopic pub
rosmsg
rosmsg show geometry_msgs/Twist
rosservice
rosservice list
创建新海龟
rosbag 话题记录 用于记录历史-方便离线复现
1 | rosbag record -a -O cmd_record |
工作空间(工程)
创建工作空间
1 | mkdir -p ~/catkin_ws/src |
编译工作空间
1 | cat ~/catkin_ws |
设置环境变量
1 | source devel/setup.bash |
检查环境变量
1 | echo $ROS_PACKAGE_PATH |
功能包
创建功能包
1 | cd ~/catkin_ws/src |
编译功能包
1 | cd ~/catkin_ws |
实例-创建发布者
1 | catkin_create_pkg learning_topic roscpp rospy ros_msgs geometry_msgs_turtlesim |
1 | #include <ros/ros.h> |
CMakefile.exe
编译
安装模拟仿真环境
Turtlebot3安装
1 | $ mkdir -p ~/catkin_ws/src |
启动模拟环境
1 | roslaunch turtlebot3_fake turtlebot3_fake.launch |
1 | $ roslaunch turtlebot3_gazebo turtlebot3_world.launch |
SLAM建图
1 | roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch |
控制移动
1 | roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch |
MavROS
1 | sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras |
双目摄像头Matlib标定
标定板图片
使用ROS自带的矫正程序进行矫正(单目)
1 | rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.018 image:=/camera/left/image_raw camera:=/camera/left |
使用ROS自带的矫正程序进行矫正(双目)
1 | rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.018 right:=/camera/right/image_raw left:=/camera/left/image_raw |
校准导出结果
1 | Left: |
根据校准结果修改yaml文件
1 | %YAML:1.0 |
PX4+Gazebo
其他教程中的Firmware基于此处方式获得
1 | cd ~ |
初始化工作空间
1 | mkdir -p ~/catkin_ws/src |
offboard控制
在catkin_ws/src目录中,运行命令
1 | catkin_create_pkg offboard_pkg roscpp std_msgs geometry_msgs mavros_msgs |
定位到目录~/catkin_ws/src/offboard_pkg/src/
,新建一个文件offboard_node.cpp
1 | /** |
然后打开目录~/catkin_ws/src/offboard_pkg/
下的CMakeLists.txt
添加下面的两行:
1 | add_executable(offboard_node src/offboard_node.cpp) |
然后到目录~/catkin_ws
下,运行命令
1 | catkin build |
等待编译完成后,在Firmware目录下运行命令
1 | make px4_sitl gazebo_iris |
打开QGroundControl
。
然后在终端下运行命令:
1 | roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" |
启动PX4
与Mavros
之间的连接,然后运行命令
1 | rosrun offboard_pkg offboard_node |
然后进入gazebo
中进行观察。
Gazebo运行过程
运行roscore
运行模拟器
在Fireware下执行
1 | make px4_sitl gazebo |
运行mavros
1 | roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557" |
这里注意在启动模拟器后需要修改如下两个参数以确保能够正常起飞
1 | param set NAV_RCL_ACT 0 |
通过rosservice 控制设备起飞
1 | 起飞时建议先将模式设置为AUTO.TAKEOFF |
在PX4模拟器中控制飞机解锁起飞
1 | commander arm |
姿态控制
1 | /mavros/set_mode 指定飞行模式 服务 |
树莓派3B MINI配置
config.txt 开启A/V输出
1 | # General note: You can find more info on the options in this file here: |
KeyServer 安装 源KEY的另一种方法
1 | curl -sL https://keyserver.ubuntu.com/pks/lookup\?op\=get\&search\=0xada83edc62d7edf8 | sudo apt-key add - |
ROS学习笔记(持续更新)