@rockyren 非线性优化求解(包括二次规划类),可以用google的Ceres 库,http://ceres-solver.org/nnls_tutorial.html
ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision

xiaoqiang
@xiaoqiang
Best posts made by xiaoqiang
-
RE: ROS中求解二次规划问题
-
jetson nano fcitx中文输入法 没有提示框和提示框字体太小的解决办法
没有提示框,需要卸载一个包。
sudo apt remove fcitx-module-kimpanel
提示框字体太小看不清,skin选择classic,同时调整字体大小
-
使用rosbag录制和回放3d激光雷达数据和小强ROS开发平台的里程计IMU数据
用激光雷达进行大范围建图时,为了方便调整建图算法的参数,可以先录制数据包,然后离线回放数据包方式建图。安装有速腾聚创3d激光雷达的小强xq5开发平台,能同时输出3d雷达点云、2d雷达点云、IMU、里程计、图像等数据,结合小车主机配置的高速、高容量固态硬盘,可以录制高质量的数据包,满足各种场景的3d、2d建图。
1.安装无线路由,架设随车wifi网络
小车底盘的“kinect供电”dc头,是通用的直流12v输出电源,可以用来给常用的9V、12V无线路由供电。在小车上固定一个无线路由,我们就可以架设一个随车移动的wifi网络。利用这个wifi网络,我们可以远程控制录制过程和遥控小车移动。
2.在windows笔记本上安装小强开发平台的《伽利略导航客户端安装程序》和ssh客户端
伽利略导航客户端用来方便的遥控小强开发平台,ssh客户端则用于ssh登录小车主机,ssh客户端可以用putty。
3.启动3d激光雷达的ros驱动和pointcloud_to_laserscan包,2020年之后购买的小强设备不需要自己启动请跳过本步骤。
使用wifi网络,在windows笔记本电脑上ssh登录小车主机。小车的IMU、里程计、图像等数据默认是开机自动启动的。
#新开一个ssh连接启动ros驱动 ssh xiaoqiang@192.168.x.x #小车密码为xiaoqiang,请将192.168.x,x换成实际的ip地址 #如果是小强xq5轮毂电机版本,请启动这个launch文件 roslaunch rslidar_pointcloud xiaoqiang_lungu.launch #如果是小强xq4-pro普通电机版本,请启动这个launch文件 roslaunch rslidar_pointcloud xiaoqiang_pro.launch #如果是北科天绘3d激光雷达,请启动下面这个launch文件 roslaunch rfans_driver xiaoqiang_lungu.launch
#新开一个ssh连接启动pointcloud_to_laserscan包 ssh xiaoqiang@192.168.x.x #小车密码为xiaoqiang,请将192.168.x,x换成实际的ip地址 roslaunch pointcloud_to_laserscan xiaoqiang_rslidar.launch
4.开始录制数据
#新开一个ssh连接启动rosbag录制线程 ssh xiaoqiang@192.168.x.x #小车密码为xiaoqiang,请将192.168.x,x换成实际的ip地址 rosbag record /rslidar/scan /rslidar_points /xqserial_server/IMU /xqserial_server/Odom
rosbag的使用方法,[请参考wiki](http://wiki.ros.org/rosbag/Commandline) /rslidar/scan 对应雷达的2d数据 /rslidar_points 对应雷达的3d数据 /xqserial_server/IMU 对应小车的IMU数据 /xqserial_server/Odom 小车的底盘里程计
5.使用windows伽利略导航客户端,遥控小车对待建图场景进行扫描。完成后,手动关闭rosbag录制线程
小车的遥控移动轨迹,最好要有多个闭合回路,因为现在的激光雷达slam算法通常都可以使用回环检测技术进一步消除误差。
ctrl+c关闭rosbag录制线程后,在小车home目录会自动生成一个2018-xxx-xxx.bag文件,这个文件就是录制的数据包。
6.用rosbag回放录制的数据包
#先关闭小车上启动的所有的ros驱动节点,因为回放数据包发布的传感器数据会和小车当前数据冲突,因此需要关闭现有的ros驱动节点 #在小车主机上新开一个命令终端 sudo service startup stop roscore
#用rosbag回放数据包 #在小车主机上新开一个命令终端 sudo service startup stop rosbag play 2018-08-11-13-20-34.bag #请将 2018-08-11-13-20-34.bag替换成实际bag包名字
一切正常的话,数据包里录制的话题数据就已经在ros中发布了,可以使用rostopic工具查看,也可以用rviz订阅。
还可以使用rqt_bag可视化工具打开bag数据包,rqt_bag可以方便的浏览、可视化bag包内容。 -
RE: GPS在ROS中的测试和使用
如果运行gpsd时出现, 这种错误 can’t bind to IPV4 port gpsd,Address already in use。可能是因为后台在执行gpsd这个服务,把它关闭掉再尝试运行。
sudo service gpsd stop gpsd -D 5 -n -N -b /dev/bwgps
Latest posts made by xiaoqiang
-
RE: 伽利略客户端导航使用问题
@mrtk 1.机器是什么型号,点击目标点开始按钮后,按钮会变成暂停吗,2.检查红色路线是否有断点(路线可以交叉,但不可以断开)。3.在绘制导航路径界面检查当前路径的循环方向(要设成双向)。4.如果还是不行,手动启动startup,开启导航后,客户端发送导航目标点,截图launch文件运行窗口的输出信息。
#先停止 sudo service startup stop #再启动 roslaunch startup startup.launch
-
谷歌cartographer使用timoo 3d激光雷达数据进行建图(在线3d模式)与纯定位
1. 保证底盘驱动和激光雷达驱动已经正常运行。
rostopic hz /xqserial_server/Odom #有50hz数据就表示底盘驱动正常 rostopic hz /timoo_points #有10hz数据表示激光雷达驱动正常
2. 启动cartographer在线建图节点
roslaunch cartographer_ros xiaoqiang_timoo_3d_online.launch
在rviz中打开/home/xiaoqiang/Documents/ros/src/cartographer_ros/cartographer_ros/configuration_files/timoo_3d_online.rviz配置文件
可以看到下图
3. 用windows客户端或者ps4手柄遥控小车移动开始建图,建图完成后调用地图保存命令
#先结束建图 rosservice call /finish_trajectory 0 #再保存地图文件 rosservice call /write_state /home/xiaoqiang/local_test.pbstream #local_test.pbstream这个文件后面就可以用于定位模式
4. 关闭建图节点,开启测试定位节点。
roslaunch cartographer_ros xiaoqiang_timoo_3d_localization.launch load_state_filename:=/home/xiaoqiang/local_test.pbstream
启动后正常会在rviz中显示如下类似界面,可以看到之前建立的地图轮廓和当前点云。刚开始初始位置不对,所以没有对齐。
4. 用windows客户端或者ps4手柄遥控小车移动一段距离,在rviz可以看到点云会变成和地图轮廓重合,机器人重定位完成。即从现在开始,机器人在地图中的位置是准确的,可以用于导航了。
-
二维码bw_auto_dock自动充电功能包的使用
二维码自动充电套件购买链接:点击此处购买
一、文档资料
自动充电模块串口通信协议v1.2.pdf
自动充电串口质检工具.exe
充电桩接线图.pdf
自动充电板接线方式.pdf
二维码自动充电ros驱动包配置手册.pdf
所有套件3D图纸(百度网盘提取码 u33h)
二、使用方法
1. 将自动充电模块安装在小车尾部,把充电桩固定好,接好电源。小车充电过程会接触充电桩,因此充电桩需要固定不能左右、前后移动,最好是靠墙放置。充电桩前面需要至少预留1米乘以1.5米的自由活动空间。
2. 根据文档 二维码自动充电ros驱动包配置手册.pdf安装配置好ros软件包
注意:上图中的摄像头标定文件请根据摄像头标签编号到百度网盘(链接: https://pan.baidu.com/s/1wI_YHUXQ7fnWQ9i3kvjdmw 提取码: u33h)查找下载,也可以咨询与您对接的销售人员。文件路径位置见下图:3.启动ros驱动节点,开始测试自动充电功能
roslaunch bw_auto_dock xiaoqiang_local.launch
先手动设置充电桩位置:节点启动成功后,遥控小车到充电桩附近,小车可以不用接触上充电桩,保证充电桩已经很接近小车充电部位(距离50cm以内),现在可以通过运行下列命令手动发布充电桩位置保存指令,这样小车会把当前位置记录为充电桩位置。
rostopic pub /bw_auto_dock/dockposition_save std_msgs/Bool '{data: true}' -1 #保存成功后会在launch文件设置的目录里面生成一个文件,里面有位置数据。 #只有在摄像头成功识别二维码数据而且里程计消息有效时才会保存数据
遥控小车到一个随机位置,运行下列命令后,小车会自动进入自动充电模式,然后尝试自动对准充电桩。
rostopic pub /bw_auto_dock/EnableCharge std_msgs/Bool '{data: true}' -1
运行下列命令可以使小车退出自动充电模式,现在又可以返回到上一步,继续发布自动充电命令。
rostopic pub /bw_auto_dock/EnableCharge std_msgs/Bool '{data: false}' -1
4.自动充电控制逻辑:
a. 设置充电桩位置后,bw_auto_dock会自动保存一个参考点。
b. 每次接收到自动充电指令后,小车会自动先运行到参考点,并调整方向对准充电桩。
c. 小车开始直线后退对准充电桩,期间根据摄像头识别的二维码姿态进行pid对准控制。
e. 如果侦测到充电电压、电流,就停止移动,开始充电。如果触发了碰撞开关,同时还没有侦测到电压和电流就回到步骤b。
5.常见问题
a.无法保存充电桩位置?
检查需要的tf数据和里程计话题是否正常发布和订阅了,检查摄像头是否正常工作,二维码有没有正常识别。
b.在步骤4.c中机器人经常没有碰到充电桩就不后退了反而立即离开,即crash_distance该如何设置?
crash_distance是一个碰撞检测阈值,在5.c步骤中,如果二维码离base_footprint的距离值小于crash_distance就认为是触发了碰撞开关。
如果4.c中机器人经常没有碰到充电桩就不后退了反而立即离开,说明crash_distance值设置的太大了,尝试把它改小一些(每次减少10)。
如果4.c中机器人已经碰到墙了,还在不断后退,说明crash_distance值设置的太小了,尝试把它改大一些(每次增加10)。
在rqt_console里面打开dock_driver节点的debug输出,可以查看当前二维码测量值,注意单位换算。
c.小车后退过程中总是大幅摇摆?
先调整default.yaml中的back_distance参数值,这个值需要设成车载铜片到base_footprint原点的距离。
再调整default.yaml中的back_dock_kp和back_dock_kd参数值,back_dock_kp是后退对准pid比例因子,back_dock_kd后退对准pid微分因子。积分因子保持0。
参数的调整要重启launch文件才能生效。
d.手动接触上铜片后,没有充电电压?
检查铜片正负极是不是接反了,正极在上面,负极在下面。
e.二维码话题/ar_pose_marker没有数据?
检查摄像头话题和摄像头参数话题数据有没有发布,ar_track_arvar节点有没有正常运行。
程序默认进入cpu节省模式,不会识别,只有需要的时候才会识别,可以调用节点的enable服务强制开始识别#开始识别 rosservice call /ar_track_alvar/start_detect "{}" #停止识别 rosservice call /ar_track_alvar/stop_detect "{}"
-
RE: 底盘状态显示为False
@wyx 1.整车重启。2.sudo service startup stop关闭服务,roslaunch startup startup.launch手动启动服务launch文件,看错误提示