博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ROS kinetic版本常用资料及操作汇总
阅读量:4126 次
发布时间:2019-05-25

本文共 4771 字,大约阅读时间需要 15 分钟。

1.相关网站

走弓字形参考代码

走三角形代码
节点控制与通信部分可参考
学习move_base包
用move_base控制自己的机器人
move_base navigation教程
使用ros实现navigation导航
最后的速度插值处理(流程就是订阅 “cmd_vel”topic 然后将速度做处理,发送给下位机执行)
turtlebot主从机网络配置
航迹推演原理
rosplan机器人路径规划
ros串口通信教程

2.常用命令使用样例及报错解决方案参考

常用命令总结:

创建一个功能包:catkin_create_pkg ros_tutorials启动turtlebot : roslaunch turtlebot_bringup minimal.launch启动建图:roslaunch turtlebot_navigation gmapping_demo.launch启动rviz: roslaunch turtlebot_rviz_launchers view_navigation.launch启动键盘:rosrun turtlebot_teleop turtlebot_teleop_key

is not a launch file :报错解决方案

$   cd ~/catkin_ws/$   catkin_make$   source devel/setup.bash创建一个功能包cd ~/catkin_ws/srccatkin_create_pkg beginner_tutorials std_msgs rospy roscpp

turtlebot仿真(ros by example代码)

启动turtlebot机器人roslaunch rbx1_bringup  fake_turtlebot.launch空白地图启动move_base节点roslaunch rbx1_nav fake_move_base_blank_map.launch发布一条前进指令rostopic pub /move_base_simple/goal  geometry_msgs/PoseStamped \ '{header: {frame_id: "map"},pose: {position:{x: 1.0,y: 0,z: 0},orientation: {x: 0,y: 0,z: 0,w: 1}}}'使用rviz观察rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz再发一个返回起点的指令rostopic pub /move_base_simple/goal  geometry_msgs/PoseStamped \ '{header: {frame_id: "map"},pose: {position:{x: 0.0,y: 0,z: 0},orientation: {x: 0,y: 0,z: 0,w: 1}}}'运行rqt_reconfigure,可以用可视化的方法调节各个参数

关于四元数的问题

为什么刚才的四元数参数设置为orientation: {x: 0,y: 0,z: 0,w: 1}

四元数可以向欧拉角一样表示旋转变换,这里表示的是机器人到达目的地后和出发时相比姿态的变化。四元数的本质是用一个向量和绕该向量的旋转来表示位姿变换,这个向量暂且记为v=(vx,vy,vz),这个旋转角度记为θ,下面看一下四元数的计算式:
看了这个公式就明白,要想根据四元数自己推算出旋转角度和旋转轴,还是有些麻烦的,一般我们需要将四元数转为为指定旋转顺序的欧拉角,才能看出姿态到底发生了怎样的变化,因此,千万别误以为每一个旋转方向的四元数表达形式都如此简洁,从四元数里读取旋转角和旋转轴还是有点计算量的。
我们可以用Matlab来验证一下quat=(0,0,0,1)这个四元数转换为欧拉角后的结果:

quat = [1 0 0 0]; //这里默认的四元数顺序为 w,x,y,z,与ros下顺序有点区别

eulZYX = quat2eul(quat) //四元数转欧拉角函数,需要注意欧拉角转动顺序
eulZYX =
0 0 0
输出结果也是绕各个轴的旋转角度都为0,即不旋转。
我们再来小小实验一下:我想让机器人到达目的地后调转180度,看看四元数应该怎么写。
调转180度,即绕着机器人z轴转180度,使用matlab中的函数算一下这个四元数:

eul = [pi 0 0]; //这个欧拉角的顺序是与输出顺序保持一致的,下面的函数转换输出顺序为ZYX,因此,绕z轴旋转pi就写为[pi 0 0]

qZYX = eul2quat(eul)
qZYX =
0.0000 0 0 1.0000
注意这里的四元数是(w,x,y,z)的顺序,我们输入到ROS下时,应该调整为(x,y,z,w)顺序,即写为(0,0,1,0)。

用move_base简单的移动机器人

1.首先启动turtlebot机器人。roslaunch rbx1_bringup fake_turtlebot.launch2.在另一个终端运行:roslaunch rbx1_nav fake_move_base_blank_map.launch3.打开rviz视图查看机器人。rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz4.运行move_base_square.py脚本移动机器人。rosrun rbx1_nav move_base_square.py

move_base仿真2

1、首先运行ArbotiX节点,并且加载机器人的URDF文件。    roslaunch rbx1_bringup fake_turtlebot.launch 2、然后运行move_base和加载空白地图的launch文件(fake_move_base_blank_map.launch):roslaunch rbx1_nav fake_move_base_blank_map.launch3、然后调用rviz就可以看到机器人了。   rosrun rviz rviz -d `rospack find rbx1_nav`/nav_fuerte.vcg

使用github源代码步骤

创建一个程序包roscreate-pkg move_base更新ros查找路径export ROS_PACKAGE_PATH=./:$ROS_PACKAGE_PATH确认路径已经添加rospack find PACKAGE_NAME

roscore 命令无反应

sudo gedit ~/.bashrc将文件末尾host_master 等携带IP的注释掉

工具的下载与安装

git clone https://github.com/jbeder/yaml-cpp到下载的yaml-cpp 目录下,buildgit clone https://github.com/jbeder/yaml-cpp.gitmkdir buildcd buildcmake -DBUILD_SHARED_LIBS=ON ..makesudo make install

Ros cpp文件编译方法

$cd ~/catkin_ws/src$roscreate-pkg beginner_tutorials$cd src$vim talker.cpp$vim listener.cpp$cd ..$ gedit CMakeLists.txt添加如下代码dd_executable(talker src/talker.cpp)target_link_libraries(talker ${catkin_LIBRARIES})add_dependencies(talker beginner_tutorials_generate_messages_cpp)add_executable(listener src/listener.cpp)target_link_libraries(listener ${catkin_LIBRARIES})add_dependencies(listener beginner_tutorials_generate_messages_cpp)然后切换到工作目录进行编译$ cd ~/catkin_ws$ catkin_make编译完成后进行一下步骤启动ros 核心运行环境roscore注册程序$ cd ~/catkin_ws$ source ./devel/setup.bash运行talker节点rosrun beginner_tutorials talkerrosrun beginner_tutorials listener

解决远程 rviz不能显示的问题

https://blog.csdn.net/bbtang5568/article/details/83030019

rviz运行时提示rviz package包找不到

sudo apt-get install ros-kinetic-rviz然后环境检测,安装rosdep install rvizrosmake rviz

ROS串口通信

ROS学习篇(三)ROS系统的串口数据读取和解析(组合导航系统)
上位机获取和读写odometry数据
Publishing Odometry Information over ROS

发送机器人位置,movebase自动移动到改位置

kobuki安装使用方法

kobuki navigation move_base

启动底盘

roslaunch kobuki_node minimal.launch

键盘遥控

roslaunch kobuki_keyop keyop.launch

在真实的机器人上运行

kobuki navigation

发布odometry消息

python代码:move_base

Dashgo多种运动方式测试走弓字形

创建启动文件及一系列的节点

启动节点:
启动文件的核心是一系列节点元素,每个节点元素都指向一个需要启动的元素,节点元素的形式为:
<node
pkg = “package-name” // 功能包的名称
type = “executable-name” // 功能包中编译形成的可执行文件的名称
name = “node-name” //节点名称
/>
其中,pkg 和 type 这两个参数和 rosrun 这个命令的参数一样。
启动文件设置
ROS学习资料

弓字形轨迹启动步骤:

1.启动turtlebot:roslaunch turtlebot_bringup minimal.launch2.启动一系列节点roslaunch rbx1_nav wfmovebase_grid.launch3.rviz配置可视化rosrun rviz rviz -d `rospack find rbx1_nav`/nav.rviz4.运行弓字形代码rosrun rbx1_nav movebase_square.py  rosrun rbx1_nav send_goal

查看话题和消息的常用命令

rqt_graph  查看节点消息关系图rosrun rqt_graph rqt_graph

waypoints nav

https://github.com/turtlebot/turtlebot_apps/tree/waypoint_nav
你可能感兴趣的文章
Valid Parentheses --括号匹配
查看>>
Remove Element--原地移除重复元素
查看>>
Remove Duplicates from Sorted Array--从有序数组中移除重复元素
查看>>
Count and Say
查看>>
Gas Station
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
Valid Palindrome 简单的回文判断
查看>>
Pascal's Triangle -- 生成杨辉三角
查看>>
Pascal's Triangle II 生成杨辉三角中的某行
查看>>
Minimum Depth of Binary Tree -- 二叉树的最小深度 DFS 加剪枝
查看>>
Climbing Stairs 爬楼梯方法 动态规划
查看>>
Merge Two Sorted Lists 合并两个有序链表
查看>>
pow(x,n) 为什么错这么多次
查看>>
Jump Game 动态规划
查看>>
Subsets 深搜
查看>>
Subsets II
查看>>
Edit Distance 字符串距离(重重)
查看>>
Gray Code 格雷码
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
web.py 0.3 新手指南 - 如何用Gmail发送邮件
查看>>