ros

Ros DWA 参数调试

随声附和 提交于 2020-04-01 12:17:54
博客转自: https://www.cnblogs.com/cv-pr/p/5800270.html Dynamic Window Approach (DWA)是重要的局部轨迹规划算法,ROS中使用了DWA算法获得了很好的局部路径规划的效果。具体的教程可参考官方的导航调试资料 Navigation Tuning Guide 。ROS的DWA( dwa_local_planner )应用到新机器人调试时,有一些技巧需要注意的,这里做一些总结。 1.设置坐标系和话题 需要订阅的话题: 里程计话题:/odom 需要设置的坐标系:包含/map,/odom,/base_footprint 2.参数调试 a.加速度的限制 加速度限制(acc_lim_x,acc_lim_y,acc_lim_th)非常的重要,如果不知道机器人的加速度,可以尽量的往大的设置,因为如果设置太小了,往往会出现机器人往前跑断断续续的,转弯转过头(看似加速度太大了,实际是加速度太小,以至于机器人想把机器人掰回来而掰不及),从而导致反复的震荡(oscillating over and over),例如下面的错误提示: Aborting because the robot appears to be oscillating over and over. Even after executing all recovery

Turtlebot入门篇

喜你入骨 提交于 2020-03-31 06:07:55
0、什么是TurtleBot? 我自己的理解就是:TurtleBot是一款移动机器人,就是主要研究让机器人自主决定应该想那个方向走,怎么绕过障碍物,最终到达目的地。与之对应还有很多机器人,比如google的机器人(主要是仿生,且不容易摔倒,摔倒了也能自己爬起来)。我喜欢的方向是机器视觉,主要目标是让TurtleBot去感知环境,不会撞到障碍物,而且可以辨识目标。所以在TurtleBot上采用vSLAM技术,后面主要讲的也是主要与之相关的。 1、本篇目标 TurtleBot实现简单的目标跟踪 1.1、概述 TurtleBot主要由3部分组成(从上到下):Kinect2,笔记本,移动底座,最后加支架。 硬件不多说,这边博客主要是讲解中间重点部分软件的安装和测试。图中标记的1,2,3,是后面讲解的大致顺序。 2、硬件,软件环境 硬件: TurtleBot2(其实主要指的是kobuki移动底座和其支架) Microsoft Kinect2(注意我这使用的是Kinect2) 笔记本(根据需求自己选购) 软件: 操作系统:Ubuntu 机器人操作系统:ROS 软件库:libfreenect2,iai_kinect2 3、系统、ROS安装 在说安装软件之前简单的说说TurtleBot机器人,这是TurtleBot的官网 http://www.turtlebot.com/ ,里面有代理商

catkin_make 与cmake

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-31 02:51:00
http://blog.csdn.net/zyh821351004/article/details/50388429 1. catkin_make 与cmake的关系 程序在cmake编译的流程: cmake指令依据你的CMakeLists.txt 文件,生成makefiles文件,make再依据此makefiles文件编译链接生成可执行文件. catkin_make是将cmake与make的编译方式做了一个封装的指令工具, 规范了工作路径与生成文件路径. 1) cmake标准流程 $ mkdir build $ cd build $ cmake .. $ make $ make install # (可选) 2) catkin_make 的流程 # In a catkin workspace $ catkin_make $ catkin_make install # (可选) 如果源码不在默认工作空间,需要指定编译路径: # In a catkin workspace $ catkin_make --source my_src $ catkin_make install --source my_src # (optionally) 2. catkin_make 1) catkin_make默认的路径信息 catkin_make运行后终端输出文件部分解析 #基本路径 Base

ROS 消息通讯——服务器/客户端的来龙去脉

荒凉一梦 提交于 2020-03-27 15:29:09
创建功能包: 1 cd ~/learning_ws/src 2 catkin_create_pkg ros_tutorials_service message_generation std_msgs roscpp //创建功能包和依赖 修改功能包说明文件package.xml:详细注释见上篇内容。 <?xml version="1.0"?> <package format="2"> <name>ros_tutorials_service</name> <version>0.0.0</version> <description>The ros_tutorials_service package</description> <author email="12345678@163.com">jjjj</author> <maintainer email="12345678@163.com">jjjj</maintainer> <license>Apache License 2.0</license> <url type="website">https://jjjj.blog</url> <buildtool_depend>catkin</buildtool_depend> <build_depend>message_generation</build_depend> <build

ROS常用命令

爷,独闯天下 提交于 2020-03-24 16:58:47
1 source ./devel/setup.bash 使环境变量生效 2 rospack find [package_name] 查找功能包路径 3 sudo apt-get install ros-<distro>-ros-tutorials 安装ros软件 4 roscd [locationname[/subdir]] 通过功能包名字进入,将路径切换之功能包下 5 cat package.xml 查看.xml文件内容 6 rosls [locationname[/subdir]] 通过功能包名字进入,查看功能包内的文件组成 7 roscd log ROS登录日志文件夹 8 pwd 显示当前路径 9 mkdir -p ~/catkin_ws/src 工作环境及功能包建立、编译 10 cd ~/catkin_ws/ 11 catkin_make 12 source devel/setup.bash 13 echo $ROS_PACKAGE_PATH 14 cd ~/catkin_ws/src 15 catkin_create_pkg <package_name> [depend1] [depend2] [depend3](std_msgs rospy roscpp) 16 cd ~/catkin_ws 17 catkin_make 18 . ~/catkin_ws/devel

ROS错误:远程打开不了窗口 QXcbConnection:Could not connect to display

丶灬走出姿态 提交于 2020-03-24 10:29:25
3 月,跳不动了?>>> ROS错误: 错误信息: QXcbConnection:Could not connect to display 原因: 远程调用窗口,打开不了 点赞 收藏 分享 文章举报 mainn 发布了447 篇原创文章 · 获赞 241 · 访问量 48万+ 他的留言板 关注 来源: oschina 链接: https://my.oschina.net/u/4398470/blog/3209959

肖昆/XTDrone

自古美人都是妖i 提交于 2020-03-23 18:38:23
3 月,跳不动了?>>> XTDrone [EN] 介绍 这是基于PX4和ROS的无人机仿真平台,在这个平台上,开发者可以快速验证算法。如: 目标检测与追踪 视觉SLAM 激光SLAM VIO 运动规划 多机协同 软件架构 通信: PX4与ROS之间的通信封装进Python类, 多机通信启动多进程 控制:键盘切换无人机飞行模式,控制解锁上锁,调节速度和偏航转速 感知 目标检测与追踪 YOLO SLAM: VSLAM: ORBSLAM2 Laser_SLAM: PLICP+gmapping VIO VINS-Mono(起飞前初始化问题有待完善) 位姿真值获取 语音识别(待开发) 运动规划(目前只有二维) 全局规划 A* Dijkstra 局部规划 DWA 协同:多机编队构型变换 仿真配置 无人机PX4参数 可拒止GPS和磁罗盘 启动脚本 Gazebo模型 支持双目相机、深度相机、单线雷达和多线雷达 Gazebo世界 两个户外场景 三个室内场景 安装教程 见 XTDrone使用文档 参与贡献 Fork 本仓库 新建 Feat_xxx 分支 提交代码 新建 Pull Request 来源: oschina 链接: https://my.oschina.net/u/4257871/blog/3209260

Ros机器人之(四)发布Publisher消息

拥有回忆 提交于 2020-03-17 04:13:59
Ros机器人之(四)发布Publisher消息 从基础学习,发布消息Publisher 首先创建功能包,命令+名称+功能包依赖 catkin_create_pkg learning-topic roscpp rospy std_msgs geometry_msgs turtlesim src文件夹下创建一个publisher.cpp touch publisher.cpp 内容如下: /* publisher topic */ # include <ros/ros.h> # include <geometry_msgs/Twist.h> int main ( int argc , char * * argv ) { //初始节点化 ros :: init ( argc , argv , "publisher" ) ; //创建节点句柄 ros :: NodeHandle n ; //创建发布者,发布的话题及队列长度用于缓存 ros :: Publisher turtle_vel_pub = n . advertise < geometry_msgs :: Twist > ( "/turtle1/cmd_vel" , 10 ) ; //循环频率 ros :: Rate loop_rate ( 10 ) ; int count = 0 ; //循环 while ( ros :: ok

ROS基础--C++字符串初始化赋值

喜夏-厌秋 提交于 2020-03-16 18:38:36
1.C++的字符串数组赋值跟C语言略有不同,当然也可以用C语言的方法给C++赋值 总的来说:C++在字符串和数组的赋值中少了等于号,多了一对花括号;在普通变量的赋值中少了等于号,多了一对小括号。 用字符串赋值完整代码例子: #include<ros/ros.h> #include<iostream> using namespace std; int main(int argc,char **argv) { ros::init(argc,argv,"hello_ros"); ros::NodeHandle nh; char str1[20]{"tasklist&pause"}; char str2[20]="tasklist&pause"; cout<<str1<<endl; cout<<str2<<endl; cin.get(); ros::spinOnce(); } 2.编译并运行: 来源: CSDN 作者: 熊大,等等我... 链接: https://blog.csdn.net/qq_34240459/article/details/104874138

ros1 和 ros2的区别

隐身守侯 提交于 2020-03-11 02:51:40
为什么用ros2.0 0.概述 1.基本概念 基本概念: ROS网络(ROS Graph)概念简介: 节点(Nodes) 客户端程序库 发现 2. ros2 的目标 3. ros2 的架构 4. ros1 和ros2的通信模型 0.概述 其实是为了解决ros1中的一些问题 主要是从下面几个文章整过来 古月居的博客 https://www.guyuehome.com/805 Why ROS 2? http://design.ros2.org/articles/why_ros2.html Exploring_the_performance_of_ROS2 https://www.researchgate.net/publication/309128426_Exploring_the_performance_of_ROS2 ROS2_based_communication_architecture_for_control_in_collaborative_and_intelligent_automation_systems https://www.ncnynl.com/archives/201801/2251.html 1.基本概念 基本概念: ROS是一个用于在不同进程间匿名的发布、订阅、传递信息的中间件。 ROS2系统的核心部分是ROS网络(ROS Graph)。