0%

Plotjuggler简介

PlotJuggler是一个类似于rqt_plot的基于Qt的数据可视化工具。但PlotJuggler拥有更强大和好用的功能。你可以导入文本文件让它显示文本文件中的数据。你也可以导入ros的bag包,它能自动解析bag包中的数据。并可以回放bag包的数据,然后用Rviz来显示数据。PlotJuggler的功能有很多,这里只介绍几种我常用的功能。应该足以应付日常的机器人开发调试工作。

Plotjuggler官方网址:

https://www.plotjuggler.io/

github地址:

https://github.com/facontidavide/PlotJuggler

阅读全文 »

下面的操作是基于ROS2 galactic

turtlebot3的代码下载:

安装git,编译工具和下载源代码

1
2
3
4
5
6
sudo apt-get install git python3-vcstool build-essential python3-colcon-common-extensions
mkdir -p turtlebot3_ws/src
cd turtlebot3_ws/
git clone https://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3.git src/turtlebot3 -b galactic-devel
git clone https://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git src/turtlebot3_msgs -b galactic-devel
git clone https://ghproxy.com/https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git src/turtlebot3_simulations -b galactic-devel

注意:链接中的https://ghproxy.com/ 为使用代理下载github代码。

阅读全文 »

文本中用于说明的完整示例代码请在下面的仓库中查阅。

https://gitee.com/shoufei/ros2_galactic_turorials.git

https://github.com/shoufei403/ros2_galactic_tutorials.git

参数

理解参数的概念

节点的参数通常维护到yaml文件中。节点启动时通常可以加载参数文件,然后读取参数的内容。而且在ROS中参数是可以动态配置的。

更多细节参考官方文档:

https://docs.ros.org/en/galactic/Tutorials/Parameters/Understanding-ROS2-Parameters.html

给节点设置参数的三种方式

  1. 让节点加载参数文件

以命令行方式加载参数文件

1
ros2 run <package_name> <executable_name> --ros-args --params-file <file_name>

示例:

1
ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml
阅读全文 »

本文介绍ROS2中话题和服务的内容。并配合示例代码来实践以便加深理解。

安装依赖

安装相应的工具:

colcon 编译工具安装

1
sudo apt install python3-colcon-common-extensions git

设置colcon_cd,方便用colcon_cd 包名 快速打开到包的目录。需要在工作空间目录下使用,其他路径下使用会出现卡住的情况。

1
2
3
4
echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc

#设置colcon_cd打开的根目录,根据自己的实际情况设置
echo "export _colcon_cd_root=~/ros2_install" >> ~/.bashrc

设置colcon参数自动补全功能

1
echo "source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash" >> ~/.bashrc

ROS2参数自动补全工具(zsh不支持ROS2参数自动补全,bash可以)

1
sudo apt-get install python3-argcomplete
阅读全文 »

costmap是什么?

costmap

costmap翻译过来是代价地图的意思。由SLAM算法生成栅格地图。我们为栅格地图中的每一个栅格分配一个代价值,这样就形成了costmap。路径规划算法则可以在具有代价的栅格地图上生成路径。规划路径的生成则是强依赖于代价值。为了生成合适的路径,我们需要为每个栅格分配合适的代价值。最开始想到的是在单层的costmap中更新每个栅格的代价,然后直接给路径规划算法。但这样会引起诸多问题。比如因为所有的数据都在同一个costmap中更新,任何一个数据的变动都需要拿到之前其他的数据重新一起计算代价值。比如数据更新的地图范围也不好确定。比如当数据类型多了之后,数据整合的顺序不好控制。

后来想到将单层的costmap分成多层是个好办法。如上图所示,一层costmap只用同一种数据来更新。比如最底层的static map就是SLAM算法生成的静态地图。使用静态地图数据生成一层costmap。Obstacles 层则是由传感器数据更新的costmap层。甚至可以根据某些特殊目的自定义一个costmap层,使生成的路径规避某些区域。这在单层的costmap算法中是很难实现的。最后将所有的costmap层按特定的顺序组合起来形成了layered_costmap。可以看到这是一种更为灵活,扩展性也更强的方法。

阅读全文 »

对于Docker,我只想说早用早享受~

安装Docker

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# Step 4: 更新并安装 Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

# Step 5: 查看docker是否安装成功
docker version
阅读全文 »

ROS1环境

匹配机器人和笔记本电脑的网络

让笔记本电脑和机器人内部的机载电脑连上相同的局域网络。

下面分别配置电脑和机载电脑的/etc/hosts 文件

使用hostname 分别查看笔记本电脑和机载电脑板的系统主机名。
使用ifconfig 分别查看笔记本电脑和机载电脑的IP地址。
使用sudo vim /etc/hosts打开电脑的/etc/hosts文件,添加机载电脑的主机名和IP地址。
完成的效果如下:

1
2
3
4
5
6
7
8
9
10
11
127.0.0.1	localhost
127.0.1.1 kevin-Vostro-5568

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

192.168.10.87 my_robot #该条为添加内容

my_robot 为机载电脑的主机名(由hostname命令获取)

同样的,在机载电脑上也修改/etc/hosts 文件,添加笔记本电脑的主机名和IP地址。效果如下:

1
2
3
4
127.0.0.1	localhost
127.0.1.1 my_robot
192.168.10.56 my_laptop #该条为添加内容

my_laptop 为笔记本电脑的主机名(由hostname命令获取)

阅读全文 »

安装vcs

1
sudo apt-get install python3-vcstool

下载代码

1
2
3
4
#在ros2_ws目录下运行,代码会存在src目录下(以ros2仓库作为示例)
mkdir -p ros2_ws/src
cd ros2_ws
vcs import src < ros2.repos

更新已经下载的代码

1
2
#在ros2_ws目录下运行
vcs pull src

导出当前src目录下的git仓库信息

1
vcs export src >> tmp.repos
阅读全文 »

下载OpenCV源码

OpenCV的release页面

Releases · opencv/opencv

选择相应的版本,下载源码

OpenCV3.4.14

下载opencv_contrib源码

找到与opencv版本一致的tag

https://github.com/opencv/opencv_contrib/tags

opencv_contrib

编译安装opencv

  1. 新建目录
1
mkdir ~/opencv_build && cd ~/opencv_build

把下载好的opencv和opencv_contrib放到opencv_build目录下。

添加代理到编译过程中的下载链接

阅读全文 »