Kobuki ROS2 Galactic 驱动编译并运行

本文档介绍了如何在ROS2的foxy和galactic版本中下载并编译ecl_lite和Kobuki驱动包。首先,从github获取并编译ecl_lite,然后下载Kobuki驱动并进行相同操作。在运行Kobuki驱动时,需要确保FTDI已编译并在设备中找到Kobuki。如果遇到设备未指定问题,需在kobuki_ros.cpp中设置设备端口。此外,针对Kobuki运行不流畅的问题,可以修改kobuki_ros.cpp文件中的速度控制逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 下载 ecl_lite

在github上下载ecl_lite的foxy版本的包,这个包也可以在galactic下运行。
注意编译的顺序,先把能编译过的编译了,再运行下面的命令,再进行编译。

source .bashrc
. /ecl_lite_ws/install/setup.bash

2. 下载 Kobuki 驱动包

在github上下载kobuki的ROS2的驱动,这个包也可以在galactic下运行。
注意编译的顺序,先把能编译过的编译了,再运行下面的命令,再进行编译。

source .bashrc
. /kobuki_ros2_ws/install/setup.bash

3. 运行 Kobuki 的驱动

在github上下载ftdi并编译,这个包会在你的电脑上发现Kobuki。
编译结束后,应该可以发现/dev/kobuki的文件位置。
此时在开启Kobuki并连接到电脑的情况下,运行ros2 run kobuki_node kobuki_ros_node的命令(不确定,我忘了是不是这个节点名称了),就可以运行Kobuki了。发送个速度指令测试一下吧~

3.1 Kobuki : no device port given on the parameter server (e.g. /dev/ttyUSB0)

kobuki_node/src/kobuki_ros.cpp的文件第213行处添加Kobuki的端口名称:

 parameters.device_port = this->declare_parameter("device_port", "/dev/kobuki");
 
 if (parameters.device_port.empty()) {
    throw std::runtime_error("Kobuki : no device port given on the parameter server (e.g. /dev/ttyUSB0).");
  }

3.2 运行Kobuki一顿一顿的

kobuki_node/src/kobuki_ros.cpp文件325行附近进行修改:

  if (kobuki_.isEnabled() && odometry_->commandTimeout(this->get_clock()->now())) {
    if (!cmd_vel_timed_out_) {
      // kobuki_.setBaseControl(0, 0);
      cmd_vel_timed_out_ = true;
      RCLCPP_WARN(get_logger(), "Incoming velocity commands not received for more than %.2f seconds -> zero'ing velocity commands", odometry_->timeout().seconds());
    }
  }
  else {
    cmd_vel_timed_out_ = false;
  }
在使用 ROS 2 Galactic 进行编译时,常见的错误可能涉及依赖项缺失、环境配置问题、版本不兼容或交叉编译时的架构设置问题。以下是几种常见错误及其解决方法: ### 1. 缺失依赖项 在编译过程中,可能会提示某些库或模块缺失,例如 `numpy-arrayobject.h` 文件不存在,或某些 ROS 2 功能包未安装。可以通过以下命令安装缺失的依赖项: ```bash pip install numpy sudo apt install libboost-all-dev sudo apt install ros-galactic-bondcpp sudo apt install ros-galactic-test-msgs sudo apt install ros-galactic-behaviortree-cpp sudo apt install ros-galactic-geographic-msgs sudo apt install ros-galactic-diagnostics sudo apt install ros-galactic-ompl ``` 此外,某些 Python 包可能也需要安装,如 `catkin_pkg`、`lark` 和特定版本的 `empy`: ```bash pip install catkin_pkg lark pip install empy==3.3.4 ``` 这些依赖项的安装可以有效解决大部分编译错误[^3]。 ### 2. 环境配置问题 如果之前通过其他方式安装过 ROS 2,可能需要确保当前环境没有加载其他 ROS 2 的设置。例如,终端中不应运行 `source /opt/ros/${ROS_DISTRO}/setup.bash`,且 `.bashrc` 文件中也不应包含该命令。确保在一个干净的环境中进行源码编译,以避免版本冲突[^4]。 ### 3. 版本不兼容 如果本地 ROS 2 版本不是 Galactic,可能会导致编译时出现警告或错误。建议直接从 GitHub 下载对应版本的源码: ```bash git clone https://github.com/ros-planning/navigation2.git -b galactic ``` 或者直接下载 ZIP 文件进行编译,以避免因版本不匹配而导致的编译问题[^3]。 ### 4. 使用 Colcon 编译工具 在编译 ROS 2 项目时,推荐使用 `colcon` 工具进行构建。如果编译过程中出现错误,可尝试使用以下命令: ```bash colcon build --merge-install ``` 该命令将合安装所有编译结果,有助于减少因路径问题导致的编译失败[^3]。 ### 5. 交叉编译问题 如果涉及从 x86 架构到 ARM 架构的交叉编译ROS 2 官方提供了三种方法。由于前两种方法在创建 Docker 镜像时可能因访问国外地址而失败,建议采用第三种方式,即在 Docker 中安装预编译ROS 2 包。这种方式避免了源码下载过程中的网络问题,简化了交叉编译流程[^2]。 ### 6. 网络与源设置 在国内使用 ROS 2 时,官方源的访问速度可能较慢,容易导致下载失败。建议更换为国内镜像源,例如使用中科大或清华的镜像。可以通过以下命令修改源: ```bash sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros2/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros2-latest.list' ``` 同时,确保正确设置了语言环境和密钥: ```bash sudo apt update && sudo apt install ros-galactic-desktop ``` 如果使用官方文档中的安装流程,注意按照步骤逐步执行,避免遗漏关键配置[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值