入门学习ros,练习代码,教学代码包的操作笔记(中科院ros视频的教学代码包)
:q #退出
cd .. #上层目录
rosnode list #查看在运行的node
roslaunch 包名
把source ~/xxx放到.bashrc文件中:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
在.bashrc中查看:
gedit .bashrc
ROS-Academy-for-Beginners
roboware-studio_1.2.0-1524709819_amd64
**ubuntu(gcc,make,cmake,catkin_ws)
获得管理员权限:$sudo su
查看目录:$ls
查看当前路径:$pwd
创建目录:$sudo mkdir -p 父目录名/子目录名/孙目录名
删除目录:$sudo rmdir 目录名
网络设置: $ifconfig
绿色文件:可执行文件
红色文件:压缩文件或包文件
蓝色文件:目录
白色文件:普通文件,文本文件,配置文件,源码文件
黄色文件:设备文件
灰色文件:其他文件
cat 文件名 #显示文本文件内容
**建立工作空间
$mkdir -p ~/catkin_ws/src #必须要有src这个目录
$cd ~/catkin_ws/
$catkin_make
**编译
$cd ~/catkin_ws #catkin_make之前一定要回到工作空间
$catkin_make
$source ~/catkin_ws/devel/setup.bash #把编译完成的workspace刷新到环境空间,让系统知道ros可执行文件的位置
**robot_sim_demo
$roslaunch robot_sim_demo robot_spawn.launch
$rosrun robot_sim_demo robot_keyboard_teleop.py
$rosrun image_view image_view image:=/camera/rgb/image_raw
$rosrun image_view image_view image:=/camera/depth/image_raw
#深度信息和rgb信息融合会有点云point cloud数据,用于定位,建图,识别
**rosrun [pkg_name] [node_name]
**小海龟
$roscore
$rosrun turtlesim turtlesim_node
$rosrun turtlesim turtle_teleop.key
$rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear #写到话题名+空格+双击tab补全内容
$rosservice call /spawn+双击tab #多一只海龟
$rosbag record -a -O xxx #话题记录
$rosbag play xxx.bag #话题复现
**topic
$rostopic list
$rostopic info /xxx #显示属性信息
$rostopic echo /xxx #显示内容
$rostopic pub+话题名+话题类型+需要改的参数以及值
**msg
$rosmsg list
$rosmsg show /xxx #显示内容
**service
$rosservice list
$rosservice info service_name #显示属性信息
$rosservice call service_name args #调用service #双击tab补充完整
**srv
$rossrv list
$rossrv show srv_name #显示srv内容
**parameter server (可以用命令行,launch文件和node读写)
$rosparam list
$rosparam get param_key #显示某参数值
$rosparam set param_key param_value #设置某参数值
$rosparam dump file_name #保存参数到文件
$rosparam load file_name #从文件读取参数
$rosparam delete param_key #删除参数
**gazebo #仿真
官网仿真建模,建立基本模型,设置传感器,设置gazebo插件
insert插入模型
**rviz #可视化
$roscore
$rviz
add,remove,fixed frame,laserscan,camera,pointcloud,map,robotmodel
插件均为subscriber,接受了topic的信息并显示出来
**rqt #可视化,显示更高级
rqt_graph:显示通信架构,计算图 #圆圈表示节点,箭头上是传输的topic
rqt_plot:绘制曲线 #topic /odom/twist/twist/angular
rqt_console:查看日志
rosrun rqt_按tab,查看所有rqt工具
**启动master
$roscore
$rosmaster
**rosnode
$rosnode list
$rosnode info /xxx #显示属性信息
**vim编辑器
vim 新建文件
i 切换到编辑模式
: 切换到底线命令模式
esc 切换到命令模式
命令模式:
x 删除光标处所在的字符
dd 删除光标所在行的一整行字符
编辑模式:
del 删除光标处的字符
backspace 删除光标前的字符
底线命令模式:
w 保存文件
q 退出程序
wq 保存并退出程序
q 强制退出
**rosbag #记录和回放数据流
记录某些topic到bag中
$rosbag record <topic-names>
记录所有topic到bag中
$rosbag record -a
回放bag
$rosbag play <bag-files>
停止录制 Ctrl+Shift+C 得到.bag文件
eg:
$rosbag record /camera/rgb/image_raw
$rosbag play 2022-03-06-21-31-54.bag
回放前需要roscore
在回放的时候,
$rostopic list #查看topic
$rostopic info /camera/rgb/image_raw #查看topic属性信息
查看topic中的内容,本例子是camera
$rosrun image_view image_view image:=/camera/rgb/image_raw
rosbag出现bag.active文件解决方法:
$rosbag reindex xxx.bag.active
$rosbag fix xxx.bag.active yyy.bag #yyy为设置的.bag文件的文件名
**tf(transform)坐标变换(位置和姿态)
根据当前的tf树创建一个pdf图
$rosrun tf view_frames #订阅5s
查看当前的tf树
$rosrun rqt_tf_tree rqt_tf_tree #动态的
查看两个frame之间的变换关系
$rosrun tf tf_echo [reference_frame][target_frame]
Ctrl+z停止
**urdf
<link> inertial,visual,collision
<joint> origin parent
安装检查urdf语法的插件
$sudo apt-get install liburdfdom-tools
$check_urdf my_robot.urdf
$roslaunch urdf_demo display_urdf_link_position.launch
$roslaunch urdf_demo display_gazebo_rviz.launch
**map
查看地图的OccupancyGrid类型如何定义
$rosmsg show nav_msg/OccupancyGrid
**gmapping
$roslaunch robot_sim_demo robot_spawn.launch
$rosrun robot_sim_demo robot_keyboard_teleop.py
$roslaunch slam_sim_demo gmapping_demo.launch
$roslaunch slam_sim_demo view_slam.launch