ROS Group 产品服务
Product Service 开源代码库
Github 官网
Official website 技术交流
Technological exchanges 激光雷达
LIDAR ROS教程
ROS Tourials 深度学习
Deep Learning 机器视觉
Computer Vision

Posts made by weijiz
-
一个比make更好用的编译工具
在进行源码编译的时候经常要执行
cmake .. make
为了提高编译速度我们经常会加上-j参数。让make去使用多线程编译。但是每个线程将消耗大量内存。一个不小心就死机。经过我的测试一个线程最多能使用4G内存。
ninja是可以代替make的另一个编译工具。它具有更快的速度,编译时消耗更少的内存。使用也是非常方便。
cmake -G Ninja .. ninja
只要编译时把原来的make指令替换成ninja就行了。
在ROS中编译软件使用catkin_make工具。这个工具也是支持ninja
catkin_make --use-ninja
如上的方式,加上–use-ninja参数就可以了。从此多线程编译再也不死机了。
-
伽利略视觉导航系统地图切换方法
伽利略视觉导航系统地图保存在机器人上。地图分为两个文件夹,一个是
/home/xiaoqiang/slamdb
一个是/home/xiaoqiang/saved-slamdb
。其中第一个文件夹保存正在使用的地图,第二个文件夹保存所有的地图。
地图文件结构如下# 地图数据,由导航系统程序创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 9.3M Sep 29 10:13 keyframedb.bson # 地图数据,由导航系统程序创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 36M Sep 29 10:13 keyframes.bson # 地图数据,由导航系统程序创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 187K Sep 29 10:13 map.bson # 地图名,由电脑客户端创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 5 Sep 29 10:13 map_name.txt # 地图图片文件,由导航系统创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 805K Sep 29 10:13 map.pgm # 地图数据,由导航系统创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 9.8M Sep 29 10:13 mappoints.bson # 地图描述文件,由导航系统创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 138 Sep 29 10:13 map.yaml # 坐标系变换矩阵。新版本可能会没有此文件 -rw-rw-r-- 1 xiaoqiang xiaoqiang 20 Sep 29 10:13 matrix.txt # 旧版本导航目标点列表,不包含目标点角度信息。每一行数据为一个目标点,数据格式为 x y z -rw-rw-r-- 1 xiaoqiang xiaoqiang 41 Sep 29 10:14 nav.csv # path1的导航目标点数据文件,在开启导航前需要把目标路径文件复制为上面的nav.csv。导航系统只会载入nav.csv文件 # 所有的旧版本导航目标点文件都以nav_开头 -rw-rw-r-- 1 xiaoqiang xiaoqiang 41 Sep 29 10:14 nav_path1.csv # 新版本的导航目标点文件,包含导航点角度信息。每一行数据为一个目标点,数据格式为 x y z 角度 位置允许误差 角度允许误差 循环方向 -rw-rw-r-- 1 xiaoqiang xiaoqiang 65 Sep 29 10:14 new_nav.csv # 新版本 path1的导航目标点数据文件,在开启导航前需要把目标点路径文件复制为new_nav.csv。导航系统只会载入new_nav.csv文件 # 所有新版本的导航目标点文件,文件名都以new_nav_开头 -rw-rw-r-- 1 xiaoqiang xiaoqiang 65 Sep 29 10:14 new_nav_path1.csv # 路径数据文件,即客户端上显示的红点数据,数据格式为 x y z。 -rw-rw-r-- 1 xiaoqiang xiaoqiang 16K Sep 29 10:14 path.csv # path1的路径数据文件。在开启导航前需要把目标导航路径文件复制为path.csv文件。所有路径数据文件都以path_开头 -rw-rw-r-- 1 xiaoqiang xiaoqiang 16K Sep 29 10:14 path_path1.csv # 当前使用的路径,由客户端创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 16K Sep 29 10:14 path_path1.csv.active # 创建地图时机器人的运行轨迹,即地图中的蓝色点 -rw-rw-r-- 1 xiaoqiang xiaoqiang 12K Sep 29 10:13 RobotTrajectory.txt # 地图保存是否完成标记文件。在地图保存完成后,导航系统会自动创建save_complete文件。注意一定要此文件成功创建之后再进行地图的相关复制删除操作。 -rw-r--r-- 1 xiaoqiang xiaoqiang 62 Sep 29 10:13 save_complete # 地图尺度信息文件,由导航系统自动创建 -rw-rw-r-- 1 xiaoqiang xiaoqiang 30 Sep 29 10:13 scale.txt
保存导航地图方法
首先向机器人发送保存地图指令,具体指令可以参考 伽利略导航系统协议
然后轮询查看slamdb文件夹内是否有save_complete文件。等待此文件出现时说明地图已经保存成功。所有地图数据都在slamdb文件夹中。
然后自己在slamdb文件夹中创建map_name.txt文件夹,文件内容是地图名称。
然后把整个slamdb文件夹内容复制到saved-slamdb中,同时以地图名称作为文件夹名称。可以参照saved-slamdb文件夹结构设置。切换地图方法
切换地图的过程比较简单。就是先把slamdb文件夹内容全部删除,然后把想要使用的地图数据从saved-slamdb文件夹中复制过去。
切换路径方法
一个路径由两个文件构成。一个是路径文件path.csv,一个是导航点文件nav.csv。新版本对应的文件名为new_path.csv, new_nav.csv。
从客户端保存路径后客户端程序会创建对应的路径数据文件。比如名称为path1的路径,其对应的数据文件为new_nav_path1.csv,new_path_path1.csv。具体的文件格式上面已经说明。
在启动导航之前需要把目标路径文件先复制替换掉对应的new_nav.csv,new_path.csv。 -
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@zhangshuoxiao 是不是小车的udev规则没有配置好,出现的错误是什么
-
ROS 常用加速指令
设置Ubuntu软件源为aliyun
设置ROS软件源为清华sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
pip设置阿里源
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
-
RE: 小强ROS机器人教程(10)___使用kinect进行自主移动避障
@柠檬蔚 在 小强ROS机器人教程(10)___使用kinect进行自主移动避障 中说:
为什么我在工控机上直接启动kinect2_bridge.launch就能正常启动kinect2,但三用SSH连接到工控机后无法启动kinect2,会报以下错误:
因为ssh没有图形界面
-
RE: 小强ROS机器人教程(27)___bw_auto_dock自动充电功能包的使用和实现原理
@huapiaoxiang21 可以检测电池电压,电池当前电压测量值发布在/bw_auto_dock/Batterypower话题上。当电量低于20%时,这个需要自己根据电压判断。