@weijiafeng rviz上显示的是什么坐标系下的坐标odom?map? 这个和你的导航定位算法有关系,实际上就是对应算法的误差。
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision

Posts made by weijiz
-
RE: 如何处理小车运动过程中的误差积累问题?
-
RE: 小强ROS机器人教程(8)___kinect1代 ROS驱动测试与安装
@gejiaqi1117 是正确的,因为kinect有些frame没用,就没有写一样把它连起来。
-
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@chihaotian678 这个和你的机器人驱动相关,一般是发布在/odom话题
-
RE: ROS如何通过USB4G网卡与指定的公网服务器通信
@canfly 比较好的方式是通过物联网mqtt协议。可以参考阿里云的iot文档
这个配置起来会麻烦一点,但是稳定性可靠性要高很多。
如果想要简单实现的话可以自己写一个socket server,然后机器人上传状态和接收指令。 -
GPS在ROS中的测试和使用
通过GPS机器人可以获取定位信息。ROS中也提供了GPS的相关驱动包,可以方便的使用GPS的定位信息。下面以蓝鲸GPS模块为例演示如何在ROS中使用GPS传感器。其他的可以通过串口指令发布nmea语句的GPS模块都是通用的。
蓝鲸GPS模块采用AGPS定位方式,即GPS加手机基站的定位方式。相对于一般的GPS模块具有定位更加迅速和准确的优点。可以在官方淘宝店咨询购买。
首先在机器人上安装对应的软件包
安装gpsd
sudo apt-get install gpsd gpsd-clients
设置模块udev规则
在机器人上运行
dmesg --follow
将GPS模块的串口插入机器人USB接口,可以看到终端输出了串口的信息
[ 434.206803] ftdi_sio 2-7.2:1.0: FTDI USB Serial Device converter detected [ 434.206868] usb 2-7.2: Detected FT232BM [ 434.207105] usb 2-7.2: FTDI USB Serial Device converter now attached to ttyUSB0
记住
2-7.2:1.0
这个端口号
在/etc/udev/rules.d/95-persistent-serial.rules
文件中添加下面的内容。如果没有这个文件就自己创建一个KERNELS=="2-7.2:1.0" ,SYMLINK+="ttyUSB005", SYMLINK+="bwgps", OWNER="xiaoqiang" ,RUN+="/bin/setserial /dev/ttyUSB005 low_latency"
其中
KERNELS
之后未刚才的端口号。OWNER设置未自己的用户。修改完成后保存退出,然后执行sudo udevadm control --reload
执行完成之后重新插入GPS模块串口,然后就可以在/dev文件夹内看到bwgps和ttyUSB005两个文件。这样就说明之前的修改已经生效了。
测试GPS数据
给模块通电,并插好串口模块之后可以开始测试模块是否能够正常输出GPS数据。
# 根据自己串口号和波特率设置 screen /dev/bwgps 115200
正常应该可以看到下面的输出。这样就说明GPS模块已经可以正常工作了。
执行下面的指令停止screen指令
sudo killall screen
设置 gpsd
# 设置串口波特率,蓝鲸GPS模块的波特率是115200,对于不同的模块根据模块参数设置。 sudo stty -F /dev/bwgps 115200 # 启动gpsd gpsd -D 5 -n -N -b /dev/bwgps
然后执行
xgps
在空旷地方应该能够看到模块已经追踪的卫星。
在ROS中使用gps数据
在ROS中可以使用nmea_navsat_driver解析GPS数据。这个包会发出下面几个话题
话题 类型 简介 /fix sensor_msgs/NavSatFix GPS定位信息 /extend_fix gps_common/GPSFix GPSFix消息包含GPS卫星状态和定位信息 /time_reference sensor_msgs/TimeReference GPS时间信息 /vel geometry_msgs/TwistStamped GPS的速度信息 可以根据自己需求订阅相关信息
安装
首先下载安装这个包
cd [到你的工作空间]/src git clone https://github.com/BluewhaleRobot/nmea_navsat_driver cd .. catkin_make -DCATKIN_WHITELIST_PACKAGES="nmea_navsat_driver"
修改launch文件,蓝鲸GPS模块用户可以不用修改直接使用。
<launch> <!-- A simple launch file for the nmea_serial_driver node. --> <arg name="port" default="/dev/bwgps" /> <arg name="baud" default="115200" /> <arg name="frame_id" default="gps" /> <arg name="time_ref_source" default="gps" /> <arg name="useRMC" default="false" /> <node name="nmea_serial_driver_node" pkg="nmea_navsat_driver" type="nmea_serial_driver" output="screen"> <param name="port" value="$(arg port)"/> <param name="baud" value="$(arg baud)" /> <param name="frame_id" value="$(arg frame_id)" /> <param name="time_ref_source" value="$(arg time_ref_source)" /> <param name="useRMC" value="$(arg useRMC)" /> </node> </launch>
各个参数的含义都十分明确,根据自己的设备参数进行修改就可以了。
运行测试
roslaunch nmea_navsat_driver nmea_serial_driver.launch
正常情况下就可以通过各个topic订阅信息了。注意如果之前运行了gpsd要先把gpsd关闭。
左侧是extend_fix话题数据。可以通过
satellite_visible_prn
看到已经看到的卫星编号。注意在开阔环境下才会有比较好的定位效果。 -
RE: 机器人巡航过程中的Off Map问题
@weijiafeng 在 机器人巡航过程中的Off Map问题 中说:
想问下这个是不是行进过程中误差积累的问题?跟AMCL定位或者雷达的配置有关吗?如何解决呢?谢谢!
应该是运动已经超出地图范围了吧
-
RE: 谷歌cartographer使用速腾聚创3d激光雷达数据进行三维建图
@li move base也有3d的插件,但是我没用过。你可以自己研究一下 https://github.com/ros-planning/3d_navigation
-
RE: 如何让机器人行进过程中头朝前
@weijiafeng 在 如何让机器人行进过程中头朝前 中说:
航测试时发现当机器人initial pose在目标点前面时,机
这个和规划器参数有关系。如果是dwa的话,可以把最小速度设置成0,禁用后退
-
RE: AttributeError: 'module' object has no attribute 'packages'
@zhk15951 在 AttributeError: 'module' object has no attribute 'packages' 中说:
requests.packages.urllib3.disable_warnings()
你的requests库好像有问题,试试更新requests库
-
RE: DSO_SLAM进行三维建模遇到问题
@孙超越a active文件是录制bag的临时文件。正常rosbag程序退出时这个文件会被删除。如果不正常退出,这个文件会保留。
-
RE: 主控的配置(CPU和内存)会影响机器人的避障性能吗?
@weijiafeng move里面的参数
local costmap
global costmap
对应的修改你自己的move base 参数。 -
RE: 主控的配置(CPU和内存)会影响机器人的避障性能吗?
@weijiafeng 可能是costmap的更新频率的问题。可以通过参数设置。如果是性能问题会有警告提示说地图刷新达不到目标频率。
-
RE: 超声波模块按照教程设置UDEV规则,启动超声波节点失败
@孙超越a
catkin_make
换成catkin_make -DCATKIN_WHITELIST_PACKAGES="bw_sensors"
试试