宇树机器人控制书bug记录

编译工作空间问题

按照https://github.com/unitreerobotics/unitree_guide里面介绍的,需要把unitree_guideunitree_rosunitree_legged_msgs三个功能报放入ROS工作空间src目录下,

报错1. 找不到move_base_msgs

具体内容如下

CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by "move_base_msgs"
  with any of the following names:

    move_base_msgsConfig.cmake
    move_base_msgs-config.cmake

意思是缺少move_base_msgs,解决方案为

sudo apt-get install ros-melodic-move-base-msgs  #注意匹配ros版本

报错2. /usr/bin/ld: cannot find -llcm

具体内容如下

/usr/bin/ld: cannot find -llcm
collect2: error: ld returned 1 exit status
make[2]: *** [unitree_guide/CMakeFiles/junior_ctrl.dir/build.make:500: /home/zlz/Desktop/unitree_book_ws/devel/lib/unitree_guide/junior_ctrl] Error 1
make[1]: *** [CMakeFiles/Makefile2:3639: unitree_guide/CMakeFiles/junior_ctrl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

意思是缺少lcm包
在宇树Z1机械臂早期的安装说明里面,配置环境时需要安装大于等于1.4.0的LCM,此处提供[LCM1.4.0的程序包](链接: https://pan.baidu.com/s/1lHdjLf_SS6Nw2B_U56twuA?pwd=1234),安装流程为

cd lcm-1.4.0 
mkdir build && cd build 
cmake .. 
make 
sudo make install

在安装时可能会遇到以下问题
在这里插入图片描述对于Java的问题,是不能找到Java,先在cmd中输入which java,然后在cmd中输入

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

在.bashrc中输入

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
对于后续Could NOT find …问题,LCM要求的依赖包有【build-essential】、【libglib2.0-dev】、【cmake】,建议安装的依赖包有【default-jdk】【python-all-dev】【liblua5.1-dev】【golang】【doxygen】【python-epydoc】,用下面的命令安装

sudo apt-get install build-essential libglib2.0-dev cmake default-jdk python-all-dev liblua5.1-dev golang doxygen python-epydoc

对于libglib2.0被anaconda覆盖的问题,参考OpenCV编译时的类似问题,建议是屏蔽anaconda的LD_LIBRARY_PATHPATH,在.bashrc中注释掉后并没有效果,报这个问题的原因是在anaconda和linux-gnu中同时找到了需求的目标文件,因此只需要在cmake…之前将路径下的anaconda3文件夹重命名其他名字即可

<think>好的,用户遇到了编译错误,提示缺少Python.h文件。我需要帮他解决这个问题。首先,Python.h是Python开发头文件的一部分,通常在安装python-dev或python3-dev包后才会包含这些文件。根据用户提供的引用,解决方案应该是安装对应的开发包。 接下来,我需要确定用户的操作系统。引用中提到的是Ubuntu系统,使用apt-get来安装。用户可能使用的是Ubuntu或者类似的Debian系系统。对于不同版本的Python,可能需要不同的包,比如Python 2.x对应python-dev,Python 3.x对应python3-dev。不过现在大多数系统默认使用Python 3,所以应该优先安装python3-dev。 用户提供的引用[2]和[4]提到安装python-dev或python3-dev,但[4]指出直接使用sudo apt install python3-dev可能更有效。此外,引用[5]建议安装python-all-dev,这可能会覆盖所有Python版本的头文件,可能更保险。 另外,用户的问题是在安装LCM时出现的,可能需要其他依赖项。引用[5]中还提到安装build-essential、cmake等,可能需要一并安装这些以确保编译环境完整。 需要分步骤指导用户安装正确的包,并验证安装是否成功。可能还需要检查Python.h的路径是否正确,比如在/usr/include/python3.x/目录下是否存在该文件。如果用户安装了多个Python版本,可能需要指定版本号,例如python3.8-dev。 最后,用户可能需要运行sudo apt update来更新软件源,确保安装的是最新版本的开发包。安装完成后,重新编译应该可以解决问题。</think>要解决编译时出现的$Python.h$头文件缺失问题,请按照以下步骤操作: ### 分步解决方案 1. **安装Python开发包** ```bash # 针对Python 3.x版本 sudo apt-get install python3-dev # 或安装覆盖所有版本的开发包(推荐) sudo apt-get install python-all-dev ``` 此操作会安装Python头文件、静态库和开发工具链,解决$Python.h$缺失问题[^2][^5] 2. **补充构建依赖** ```bash sudo apt-get install build-essential libglib2.0-dev cmake ``` 这些包提供GCC编译器套件、GLib库和CMake构建工具,确保完整编译环境 3. **验证头文件路径** 安装完成后检查文件是否存在: ```bash ls /usr/include/python3.*/Python.h ``` 正常情况下应显示类似路径:$/usr/include/python3.8/Python.h$[^3] 4. **重试编译** 重新执行LCM的编译命令: ```bash mkdir build && cd build cmake .. make ``` ### 附加说明 - 如果使用虚拟环境,需确保虚拟环境配置指向系统头文件目录 - 多版本Python共存时,需指定对应版本的开发包(如$python3.9-dev$) - 建议先更新软件源:$sudo apt-get update$[^4]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值