ROS catkin和Linux Yocto是一个概念,组织管理ROS功能包
- ROS Noetic Ninjemys
- ROS Melodic Morenia
- ROS Lunar Loggerhead
- ROS Kinetic Kame
- 很多资料是这个版本
- ROS Jade Turtle
查看版本信息:rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Add distro "dashing"
Add distro "eloquent"
Add distro "foxy"
Skip end-of-life distro "groovy"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Skip end-of-life distro "jade"
Add distro "kinetic"
Skip end-of-life distro "lunar"
Add distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/pi/.ros/rosdep/sources.cache
apt-cache search ros-baselibpam-krb5-migrate-heimdal - PAM module for migrating to Heimdal Kerberos libpam-krb5-migrate-mit - PAM module for migrating to MIT Kerberos libroscpp-core-dev - Development files for Robot OS roscpp-core ros-base - Python Robot OS base metapackage ros-base-dev - Robot OS base development metapackage ros-base-lisp-dev - Lisp Robot OS base development metapackage ros-base-python-dev - Python Robot OS base development metapackagesudo apt-get install ros-base-python-devsudo rosdep initERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.- sudo vim /etc/hosts
151.101.84.133 raw.githubusercontent.com
- sudo vim /etc/hosts
rosdep update- 多次尝试,经常timeout
roscore... logging to /home/pi/.ros/log/c538ec6c-ebc2-11e9-bb8b-dca632174792/roslaunch-raspberrypi-10390.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://raspberrypi:36077/ ros_comm version 1.14.3 SUMMARY ======== PARAMETERS * /rosdistro: Debian * /rosversion: 1.14.3 NODES auto-starting new master process[master]: started with pid [10426] ROS_MASTER_URI=http://raspberrypi:11311/ setting /run_id to c538ec6c-ebc2-11e9-bb8b-dca632174792 process[rosout-1]: started with pid [10443] started core service [/rosout]
- https://github.com/ros-gbp/ros_tutorials-release/tree/release/melodic/rospy_tutorials
- listener.py
#!/usr/bin/env python import rospy from std_msgs.msg import String def callback(data): rospy.loginfo(rospy.get_caller_id() + 'I heard %s', data.data) def listener(): # In ROS, nodes are uniquely named. If two nodes with the same # name are launched, the previous one is kicked off. The # anonymous=True flag means that rospy will choose a unique # name for our 'listener' node so that multiple listeners can # run simultaneously. rospy.init_node('listener', anonymous=True) rospy.Subscriber('chatter', String, callback) # spin() simply keeps python from exiting until this node is stopped rospy.spin() if __name__ == '__main__': listener()
- talker.py
#!/usr/bin/env python import rospy from std_msgs.msg import String def talker(): pub = rospy.Publisher('chatter', String, queue_size=10) rospy.init_node('talker', anonymous=True) rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): hello_str = "hello world %s" % rospy.get_time() rospy.loginfo(hello_str) pub.publish(hello_str) rate.sleep() if __name__ == '__main__': try: talker() except rospy.ROSInterruptException as e: print e
- python2 listener.py
[INFO] [1607497765.294491]: /listener_16319_1607497759624I heard hello world 1607497765.29 [INFO] [1607497765.393387]: /listener_16319_1607497759624I heard hello world 1607497765.39 [INFO] [1607497765.493325]: /listener_16319_1607497759624I heard hello world 1607497765.49 [INFO] [1607497765.593424]: /listener_16319_1607497759624I heard hello world 1607497765.59 [INFO] [1607497765.693473]: /listener_16319_1607497759624I heard hello world 1607497765.69 [INFO] [1607497765.793681]: /listener_16319_1607497759624I heard hello world 1607497765.79 [INFO] [1607497765.893435]: /listener_16319_1607497759624I heard hello world 1607497765.89 - python2 talker.py
[INFO] [1607497765.290273]: hello world 1607497765.29 [INFO] [1607497765.390432]: hello world 1607497765.39 [INFO] [1607497765.490405]: hello world 1607497765.49 [INFO] [1607497765.590406]: hello world 1607497765.59 [INFO] [1607497765.690416]: hello world 1607497765.69 [INFO] [1607497765.790459]: hello world 1607497765.79 [INFO] [1607497765.890416]: hello world 1607497765.89
- python默认需要是python2
- 参考文档:
- sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros-latest.list'
- sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- mkdir ~/ros_catkin_ws
- cd ~/ros_catkin_ws
- rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall
- wstool init -j8 src melodic-desktop-wet.rosinstall
- 下载断点续传
- wstool update -j 4 -t src
- wstool merge melodic-desktop-wet.rosinstall -t src
- 下载断点续传
- rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster
- assimp
- mkdir -p ~/ros_catkin_ws/external_src
- cd ~/ros_catkin_ws/external_src
- wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
- unzip assimp-3.1.1_no_test_models.zip
- cd assimp-3.1.1
- cmake .
- make
- sudo make install
- sudo apt-get install libogre-1.9-dev
- rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:$(lsb_release -cs)
- sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
...省略 ==> make install in '/home/pi/ros_catkin_ws/build_isolated/pluginlib' Install the project... -- Install configuration: "Release" -- Installing: /opt/ros/melodic/_setup_util.py -- Installing: /opt/ros/melodic/env.sh -- Installing: /opt/ros/melodic/setup.bash -- Installing: /opt/ros/melodic/local_setup.bash -- Installing: /opt/ros/melodic/setup.sh -- Installing: /opt/ros/melodic/local_setup.sh -- Installing: /opt/ros/melodic/setup.zsh -- Installing: /opt/ros/melodic/local_setup.zsh -- Installing: /opt/ros/melodic/.rosinstall -- Up-to-date: /opt/ros/melodic/lib/pkgconfig/pluginlib.pc -- Up-to-date: /opt/ros/melodic/share/pluginlib/cmake/pluginlibConfig.cmake -- Up-to-date: /opt/ros/melodic/share/pluginlib/cmake/pluginlibConfig-version.cmake -- Up-to-date: /opt/ros/melodic/share/pluginlib/package.xml -- Up-to-date: /opt/ros/melodic/include/pluginlib -- Up-to-date: /opt/ros/melodic/include/pluginlib/pluginlib_exceptions.h -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_loader_base.h -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_loader_imp.hpp -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_loader.h -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_loader_base.hpp -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_list_macros.hpp -- Up-to-date: /opt/ros/melodic/include/pluginlib/exceptions.hpp -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_desc.h -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_loader_imp.h -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_desc.hpp -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_list_macros.h -- Up-to-date: /opt/ros/melodic/include/pluginlib/class_loader.hpp -- Up-to-date: /opt/ros/melodic/lib/pluginlib/pluginlib_headers_migration.py <== Finished processing package [64 of 186]: 'pluginlib' ==> Processing catkin package: 'qt_gui_cpp' ==> Building with env: '/opt/ros/melodic/env.sh' Makefile exists, skipping explicit cmake invocation... ==> make cmake_check_build_system in '/home/pi/ros_catkin_ws/build_isolated/qt_gui_cpp' ==> make -j2 in '/home/pi/ros_catkin_ws/build_isolated/qt_gui_cpp' [ 84%] Built target qt_gui_cpp [ 89%] Running SIP generator for qt_gui_cpp_sip Python bindings... Traceback (most recent call last): File "/opt/ros/melodic/share/python_qt_binding/cmake/sip_configure.py", line 92, in <module> sip_dir, sip_flags = get_sip_dir_flags(config) File "/opt/ros/melodic/share/python_qt_binding/cmake/sip_configure.py", line 72, in get_sip_dir_flags raise FileNotFoundError('The sip directory for PyQt5 could not be located. Please ensure' + NameError: global name 'FileNotFoundError' is not defined make[2]: *** [src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/build.make:90: sip/qt_gui_cpp_sip/Makefile] Error 1 make[1]: *** [CMakeFiles/Makefile2:566: src/qt_gui_cpp_sip/CMakeFiles/libqt_gui_cpp_sip.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 <== Failed to process package 'qt_gui_cpp': Command '['/opt/ros/melodic/env.sh', 'make', '-j2']' returned non-zero exit status 2. Reproduce this error by running: ==> cd /home/pi/ros_catkin_ws/build_isolated/qt_gui_cpp && /opt/ros/melodic/env.sh make -j2 Command failed, exiting.- Building catkin workspace,failed to process package 'qt_gui_cpp'
- sudo apt-get install sip-dev pyqt5-dev python-sip-dev pyqt5-dev-tools
- Building catkin workspace,failed to process package 'qt_gui_cpp'
- 未解决
[ 0%] Built target _std_msgs_generate_messages_check_deps_ByteMultiArray [ 0%] Built target _std_msgs_generate_messages_check_deps_Int8MultiArray [ 3%] Generating Javascript code from std_msgs/Int32MultiArray.msg [ 20%] Built target std_msgs_generate_messages_cpp Traceback (most recent call last): File "/opt/ros/melodic/share/gennodejs/cmake/../../../lib/gennodejs/gen_nodejs.py", line 21, in <module> import gennodejs ImportError: No module named gennodejs make[2]: *** [CMakeFiles/std_msgs_generate_messages_nodejs.dir/build.make:95: /home/pi/ros_catkin_ws/devel_isolated/std_msgs/share/gennodejs/ros/std_msgs/msg/Int32MultiArray.js] Error 1 make[1]: *** [CMakeFiles/Makefile2:1389: CMakeFiles/std_msgs_generate_messages_nodejs.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 21%] Generating EusLisp code from std_msgs/Int32MultiArray.msg [ 21%] Generating EusLisp code from std_msgs/Float32.msg Traceback (most recent call last): Traceback (most recent call last): File "/opt/ros/melodic/share/geneus/cmake/../../../lib/geneus/gen_eus.py", line 39, in <module> File "/opt/ros/melodic/share/geneus/cmake/../../../lib/geneus/gen_eus.py", line 39, in <module> import geneus import geneus ImportErrorImportError: : No module named geneusNo module named geneus make[2]: *** [CMakeFiles/std_msgs_generate_messages_eus.dir/build.make:96: /home/pi/ros_catkin_ws/devel_isolated/std_msgs/share/roseus/ros/std_msgs/msg/Int32MultiArray.l] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [CMakeFiles/std_msgs_generate_messages_eus.dir/build.make:101: /home/pi/ros_catkin_ws/devel_isolated/std_msgs/share/roseus/ros/std_msgs/msg/Float32.l] Error 1 make[1]: *** [CMakeFiles/Makefile2:326: CMakeFiles/std_msgs_generate_messages_eus.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 <== Failed to process package 'std_msgs': Command '['/opt/ros/melodic/env.sh', 'make', '-j2']' returned non-zero exit status 2. Reproduce this error by running: ==> cd /home/pi/ros_catkin_ws/build_isolated/std_msgs && /opt/ros/melodic/env.sh make -j2 Command failed, exiting.
- 机器人操作系统ROS—树莓派Pi4环境(Raspberry Pi OS + ROS Melodic)
# 添加 sources.list&公钥 sudo apt update && sudo apt install curl gnupg2 lsb-release catkin sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 # 安装工具 sudo apt update # sudo apt upgrade sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake # 初始化 rosdep sudo vim /etc/hosts 151.101.84.133 raw.githubusercontent.com sudo rosdep init rosdep update # 下载ROS精简版源码到src(包含二十多个核心包,不含可视化工具) cd ~/ros_catkin_ws #rosinstall_generator ros_comm --rosdistro melodic --deps --wet-only --tar > melodic-ros_comm-wet.rosinstall #wstool init src melodic-ros_comm-wet.rosinstall #如果安装意外中断,执行wstool update -j4 -t src 继续 # 下载ROS桌面版源码到src(包含186个常用包,含rqt、rviz等可视化工具以及OpenCV3,编译过程较为漫长) rosinstall_generator desktop rosserial --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall #--exclude collada_parser collada_urdf wstool init src melodic-desktop-wet.rosinstall #或通过wstool update -j 4 -t src 继续下载 # 安装所需依赖 rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:$(lsb_release -cs) # 编译ROS到/opt/ros/melodic目录 sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic # 设置环境 echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc # 测试ROS turtle roscore rosnode list rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key rosrun rqt_graph rqt_graph # 查看节点关系图
- 参考文档
- Installing ROS Melodic on the Raspberry Pi
- 一定要运行里面的
rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster检查依赖包安装问题,否者编译完会出现缺库问题
- 用上面的参考文档进行代码编译
- echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
- 测试ROS turtle
- 单独在一个终端中运行,一般来说,这个服务是一定要保持运行的:
- roscore
- rosnode list
- 这两个合起来用
- rosrun turtlesim turtlesim_node
- rosrun turtlesim turtle_teleop_key
- rosrun rqt_graph rqt_graph # 查看节点关系图
- 单独在一个终端中运行,一般来说,这个服务是一定要保持运行的:
- 两个终端分别运行
- 官方教程:http://wiki.ros.org/rviz
- 视频教程
- 常用命令
- rospack
- 查找某个pkg的地址:rospack find package_name
- 列出本地所有的pkg:rospack list
- roscd
- 跳转到某个pkg路径下:roscd package_name
- rosls
- 列举某个pkg下的文件信息:rosls package_name
- rosed
- 编辑pkg中的文件:rosed package_name file_name
- catkin_create_pkg
- 创建一个pkg:catkin_create_pkg <pkg_name> [deps]
- rosdep
- 安装某个pkg所需要的依赖:rosdep install [pkg_name]
- rospack
- 官方参考分析代码:~/ros_catkin_ws/src/ros_tutorials
- https://github.com/ros-gbp/ros_tutorials-release/tree/release/melodic/rospy_tutorials
- roslaunch rospy_tutorials talker_listener.launch
... logging to /home/pi/.ros/log/ebdfd89a-4dcc-11eb-96cb-cec5cafb6409/roslaunch-raspberrypi-1574.log Checking log directory for disk usage. This may take a while. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. ... loading XML file [/opt/ros/melodic/etc/ros/roscore.xml] ... executing command param [rosversion roslaunch] Added parameter [/rosversion] ... executing command param [rosversion -d] Added parameter [/rosdistro] Added core node of type [rosout/rosout] in namespace [/] ... loading XML file [/opt/ros/melodic/share/rospy_tutorials/001_talker_listener/talker_listener.launch] Added node of type [rospy_tutorials/listener.py] in namespace [/] Added node of type [rospy_tutorials/talker.py] in namespace [/] started roslaunch server http://raspberrypi:43187/ SUMMARY ======== PARAMETERS * /rosdistro: melodic * /rosversion: 1.14.10 NODES / listener (rospy_tutorials/listener.py) talker (rospy_tutorials/talker.py) auto-starting new master process[master]: started with pid [1584] ROS_MASTER_URI=http://localhost:11311 setting /run_id to ebdfd89a-4dcc-11eb-96cb-cec5cafb6409 process[rosout-1]: started with pid [1595] started core service [/rosout] process[listener-2]: started with pid [1598] process[talker-3]: started with pid [1599] [INFO] [1609682812.221915]: hello world 1609682812.22 [INFO] [1609682812.322099]: hello world 1609682812.32 [INFO] [1609682812.325677]: /listenerI heard hello world 1609682812.32 [INFO] [1609682812.422043]: hello world 1609682812.42 [INFO] [1609682812.425512]: /listenerI heard hello world 1609682812.42 [INFO] [1609682812.522064]: hello world 1609682812.52 [INFO] [1609682812.525872]: /listenerI heard hello world 1609682812.52 ^C[INFO] [1609682812.622038]: hello world 1609682812.62 [talker-3] killing on exit [INFO] [1609682812.625906]: /listenerI heard hello world 1609682812.62 [listener-2] killing on exit [rosout-1] killing on exit [master] killing on exit shutting down processing monitor... ... shutting down processing monitor complete done - 程序log输出:~/.ros/log/latest
- 通过上面的log可知,上面运行的程序是在:
/opt/ros/melodic/share/rospy_tutorials/001_talker_listener/
- https://github.com/DroidAITech/ROS-Academy-for-Beginners
- mkdir ~/zengjf/ros/src
- cd ~/zengjf/ros/src
- cd ~/zengjf/ros
- rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:$(lsb_release -cs)
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: robot_sim_demo: No definition of [yocs_cmd_vel_mux] for OS [debian] navigation_sim_demo: No definition of [dwa_local_planner] for OS [debian] slam_sim_demo: No definition of [hector_mapping] for OS [debian] Continuing to install resolvable dependencies... #All required rosdeps installed successfully catkin_make运行失败了Base path: /home/pi/zengjf/ros Source space: /home/pi/zengjf/ros/src Build space: /home/pi/zengjf/ros/build Devel space: /home/pi/zengjf/ros/devel Install space: /home/pi/zengjf/ros/install #### #### Running command: "cmake /home/pi/zengjf/ros/src -DCATKIN_DEVEL_PREFIX=/home/pi/zengjf/ros/devel -DCMAKE_INSTALL_PREFIX=/home/pi/zengjf/ros/install -G Unix Makefiles" in "/home/pi/zengjf/ros/build" #### -- Using CATKIN_DEVEL_PREFIX: /home/pi/zengjf/ros/devel -- Using CMAKE_PREFIX_PATH: /opt/ros/melodic -- This workspace overlays: /opt/ros/melodic -- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.16", minimum required is "2") -- Using PYTHON_EXECUTABLE: /usr/bin/python2 -- Using Debian Python package layout -- Using empy: /usr/bin/empy -- Using CATKIN_ENABLE_TESTING: ON -- Call enable_testing() -- Using CATKIN_TEST_RESULTS_DIR: /home/pi/zengjf/ros/build/test_results -- Forcing gtest/gmock from source, though one was otherwise available. -- Found gtest sources under '/usr/src/googletest': gtests will be built -- Found gmock sources under '/usr/src/googletest': gmock will be built -- Found PythonInterp: /usr/bin/python2 (found version "2.7.16") -- Using Python nosetests: /usr/bin/nosetests-2.7 -- catkin 0.7.29 -- BUILD_SHARED_LIBS is on -- BUILD_SHARED_LIBS is on -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- ~~ traversing 29 packages in topological order: -- ~~ - openslam_gmapping -- ~~ - ros_academy_for_beginners (metapackage) -- ~~ - ros_control (metapackage) -- ~~ - rqt_controller_manager -- ~~ - slam_gmapping (metapackage) -- ~~ - controller_manager_msgs -- ~~ - hardware_interface -- ~~ - combined_robot_hw -- ~~ - controller_interface -- ~~ - name_demo -- ~~ - navigation_sim_demo -- ~~ - orbslam2_demo -- ~~ - param_demo -- ~~ - robot_sim_demo -- ~~ - rtabmap_demo -- ~~ - service_demo -- ~~ - slam_sim_demo -- ~~ - topic_demo -- ~~ - action_demo -- ~~ - controller_manager -- ~~ - controller_manager_tests -- ~~ - combined_robot_hw_tests -- ~~ - msgs_demo -- ~~ - gmapping -- ~~ - tf_demo -- ~~ - tf_follower -- ~~ - transmission_interface -- ~~ - joint_limits_interface -- ~~ - urdf_demo -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- +++ processing catkin package: 'openslam_gmapping' -- ==> add_subdirectory(openslam_gmapping) -- +++ processing catkin metapackage: 'ros_academy_for_beginners' -- ==> add_subdirectory(ROS-Academy-for-Beginners/ros_academy_for_beginners) -- +++ processing catkin metapackage: 'ros_control' -- ==> add_subdirectory(ros_control/ros_control) -- +++ processing catkin package: 'rqt_controller_manager' -- ==> add_subdirectory(ros_control/rqt_controller_manager) -- +++ processing catkin metapackage: 'slam_gmapping' -- ==> add_subdirectory(slam_gmapping/slam_gmapping) -- +++ processing catkin package: 'controller_manager_msgs' -- ==> add_subdirectory(ros_control/controller_manager_msgs) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- controller_manager_msgs: 4 messages, 6 services -- +++ processing catkin package: 'hardware_interface' -- ==> add_subdirectory(ros_control/hardware_interface) -- +++ processing catkin package: 'combined_robot_hw' -- ==> add_subdirectory(ros_control/combined_robot_hw) -- +++ processing catkin package: 'controller_interface' -- ==> add_subdirectory(ros_control/controller_interface) -- +++ processing catkin package: 'name_demo' -- ==> add_subdirectory(ROS-Academy-for-Beginners/name_demo) -- +++ processing catkin package: 'navigation_sim_demo' -- ==> add_subdirectory(ROS-Academy-for-Beginners/navigation_sim_demo) -- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy -- Could NOT find controller_manager (missing: controller_manager_DIR) -- Could not find the required component 'controller_manager'. The following CMake error indicates that you either need to install the package with the same name or change your environment so that it can be found. CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package): Could not find a package configuration file provided by "controller_manager" with any of the following names: controller_managerConfig.cmake controller_manager-config.cmake Add the installation prefix of "controller_manager" to CMAKE_PREFIX_PATH or set "controller_manager_DIR" to a directory containing one of the above files. If "controller_manager" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): ROS-Academy-for-Beginners/navigation_sim_demo/CMakeLists.txt:3 (find_package) -- Configuring incomplete, errors occurred! See also "/home/pi/zengjf/ros/build/CMakeFiles/CMakeOutput.log". See also "/home/pi/zengjf/ros/build/CMakeFiles/CMakeError.log". Invoking "cmake" failed- 如上是缺少一些发行包,前面没有安装导致的,安装更多依赖包
- http://wiki.ros.org/ROSberryPi/Installing%20ROS%20Melodic%20on%20the%20Raspberry%20Pi
- cd ~/ros_catkin_ws
- rosinstall_generator ros_comm ros_control joystick_drivers --rosdistro melodic --deps --wet-only --tar > melodic-custom_ros.rosinstall
- wstool merge -t src melodic-custom_ros.rosinstall
- wstool update -t src
- rosdep install --from-paths src --ignore-src --rosdistro melodic -y -r --os=debian:buster
- sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
- 编译还是有问题,主要是gazebo_ros没有


