参考链接
GitHub - micro-ROS/micro_ros_setup: Support macros for building micro-ROS-based firmware.
一、创建一个 ROS 2 工作区并为给定的 ROS 2 发行版构建这个包
source /opt/ros/$ROS_DISTRO/setup.bash
mkdir uros_ws && cd uros_ws
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
rosdep update && rosdep install --from-paths src --ignore-src -y
colcon build
source install/local_setup.bash
二、构建 micro-ROS-Agent
ros2 run micro_ros_setup create_agent_ws.sh
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.sh
ros2 run micro_ros_agent micro_ros_agent [parameters]
主要问题解决:
1.spdlog报错,原因是spdlog的版本不对应。
In file included from /usr/local/include/spdlog/spdlog.h:12,
from /home/xc/microros_ws/build/micro_ros_agent/agent/src/xrceagent/include/uxr/agent/logger/Logger.hpp:23,
from /home/xc/microros_ws/build/micro_ros_agent/agent/src/xrceagent/include/uxr/agent/client/session/stream/OutputStream.hpp:22,
from /home/xc/microros_ws/build/micro_ros_agent/agent/src/xrceagent/include/uxr/agent/client/session/Session.hpp:20,
from /home/xc/microros_ws/build/micro_ros_agent/agent/src/xrceagent/include/uxr/agent/client/ProxyClient.hpp:20,
from /home/xc/microros_ws/build/micro_ros_agent/agent/src/xrceagent/include/uxr/agent/Root.hpp:18,
from /home/xc/microros_ws/build/micro_ros_agent/agent/src/xrceagent/src/cpp/processor/Processor.cpp:20:
/usr/local/include/spdlog/common.h: In constructor ‘spdlog::spdlog_ex::spdlog_ex(const string&, int)’:
/usr/local/include/spdlog/common.h:186:54: error: cannot convert ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘const char*’
186 | fmt::format_system_error(outbuf, last_errno, msg);
解决方法:
下载最新的spdlog替换原来的。
下载链接:https://github.com/gabime/spdlog
这里采用编译源码的方式,也可以在Releases中直接下载。
$ git clone https://github.com/gabime/spdlog.git
$ cd spdlog && mkdir build && cd build
$ cmake .. && make -j
最后将新的文件~/spdlog/include/spdlog,替换到/usr/local/include/spdlog。
2.网络问题github下载不了
在/etc/hosts中添加以下代码。
185.199.108.133 raw.githubusercontent.com
192.30.255.112 github.com
185.31.16.184 github.global.ssl.fastly.net
3.uxr/agent报错
直接删除/usr/local/include/uxr/agent文件夹即可,同时删除uros_ws文件,从第一步开始重新构建。
In file included from /home/xc/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/include/agent/Agent.hpp:18,
from /home/xc/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/main.cpp:15:
/usr/local/include/uxr/agent/AgentInstance.hpp:18:10: fatal error: uxr/agent/config.hpp: No such file or directory
18 | #include <uxr/agent/config.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/micro_ros_agent.dir/build.make:76: CMakeFiles/micro_ros_agent.dir/src/main.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
In file included from /home/xc/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/include/agent/Agent.hpp:18,
from /home/xc/microros_ws/src/uros/micro-ROS-Agent/micro_ros_agent/src/agent/Agent.cpp:18:
/usr/local/include/uxr/agent/AgentInstance.hpp:18:10: fatal error: uxr/agent/config.hpp: No such file or directory
18 | #include <uxr/agent/config.hpp>
| ^~~~~~~~~~~~~~~~~~~~~~