下面的安装过程是在ubuntu20.04上进行的。
安装gnuplot需要依赖lua5.2。所以先安装lua5.2。
安装lua5.2
下载安装包
1 | wget http://www.tecgraf.puc-rio.br/lua/ftp/lua-5.2.0.tar.gz |
编译安装lua5.2
解压后进入源码目录
1 | make linux |
下面的安装过程是在ubuntu20.04上进行的。
安装gnuplot需要依赖lua5.2。所以先安装lua5.2。
安装lua5.2
下载安装包
1 | wget http://www.tecgraf.puc-rio.br/lua/ftp/lua-5.2.0.tar.gz |
编译安装lua5.2
解压后进入源码目录
1 | make linux |

byobu的图标像是中国的风屏,颇有中国风。哈哈!
官方网址:
Ubuntu下安装byobu
1 | sudo apt-get install byobu |
你的机器人安全吗?
ROS1中的通信数据基本是开放的。只要我们知道机器的IP。然后使用下面的命令在自己的笔记本电脑里声明一下机器人系统中ROS_MASTER的地址。
1 | export ROS_MASTER_URI="http://192.7.8.48:11311" |
注意,这里的ip(192.7.8.48)需要设成实际机器的ip。
这样我们就可以获取机器人系统的所有通信数据。
并且很危险的是,我们可以在自己的电脑中向机器人系统发送任意速度指令或者其他指令来干扰机器人的正常运行。
想想就很不安全。
ROS2中默认集成了SROS2功能包。它可以将通信数据进行加密从而保证数据安全。下面来认识一下这个功能包。
SROS2仓库地址:https://github.com/ros2/sros2
这里记录一下使用cppcheck进行C++代码静态检测的方法和步骤。
本机安装cppcheck
1 | sudo apt-get update && sudo apt-get install cppcheck |
使用cppcheck来检查代码
新建一个目录,并在目录中加入如下内容的cpp文件,用于测试静态代码分析工具。
测试代码
1 | #include <iostream> |
下面的一个例子演示了两个节点之间如何实现零拷贝通讯。
注意,下面测试例子的ROS2版本为Galactic。
1 | #include <chrono> |
std::chrono::system_clock
1 |
|
system_clock是系统范围的时钟。它是可修改的。比如同步网络时间。所以系统的时间差可能不准。
ROS2的构建系统ament_cmake是基于CMake改进而来的。本篇文章我们详细介绍一下ament_cmake常用的语句。
使用ros2 pkg create <package_name>可以生成一个功能包的框架。

一个功能包的构建信息将会包含在CMakeLists.txt和package.xml这两个文件中。package.xml文件中包含该功能包的依赖信息,它可以帮助编译工具colcon确定多个功能包编译的顺序。当我们需要单独编译功能包时必须确保编译的包名必须与package.xml文件中的一致。
1 | colcon build --packages-select <package_name> |
而CMakeLists.txt就是我们需要重点关注的。它描述了如何构建功能包。