六、ROS安装ros_canopen模块

2023-05-16

六、ROS安装ros_canopen模块

    • 1.查看自己的ROS版本
    • 2.下载ros_canopen源码

1.查看自己的ROS版本

首先查看自己的ROS版本:我的是melodic

  • 终端1
roscore
  • 终端2
rosparam list
rosparam get /rosdistro

2.下载ros_canopen源码

  • 先创建好工作空间can_workspace,然后用git clone指令下载ros_canopen源码到 /工作空间/src下
cd /home/yao/My_Ros_WorkSpace
mkdir can_workspace
cd can_workspace
mkdir src
cd src
git clone  https://github.com/ros-industrial/ros_canopen.git

如果下载源码的时候连接超时,就Ctrl + C取消进程,然后重新输入指令多试几次,这是个玄学问题
在这里插入图片描述

  • 这一步咱也不知道是为啥,反正我看别人都装了就装了,安装过程并没有遇到报错
    参考这篇文章:安装ros_canopen
sudo apt-get install libmuparser-dev

网上说,如果这一步安装遇到问题,可以执行这一步(我自己没试过)

sudo apt-get install  libmuparser libmuparser2v5     libmuparser-doc    libmuparserx-dev   libmuparser-dev    libmuparserx4.0.7
  • 然后才能编译工作空间
cd  /home/yao/My_Ros_WorkSpace/can_workspace
catkin_make

终端输出了一大堆乱七八糟的日志,不用管他,成功了就行

yao@HP:~$ cd  /home/yao/My_Ros_WorkSpace/can_workspace
yao@HP:~/My_Ros_WorkSpace/can_workspace$ catkin_make
Base path: /home/yao/My_Ros_WorkSpace/can_workspace
Source space: /home/yao/My_Ros_WorkSpace/can_workspace/src
Build space: /home/yao/My_Ros_WorkSpace/can_workspace/build
Devel space: /home/yao/My_Ros_WorkSpace/can_workspace/devel
Install space: /home/yao/My_Ros_WorkSpace/can_workspace/install
Creating symlink "/home/yao/My_Ros_WorkSpace/can_workspace/src/CMakeLists.txt" pointing to "/opt/ros/melodic/share/catkin/cmake/toplevel.cmake"
####
#### Running command: "cmake /home/yao/My_Ros_WorkSpace/can_workspace/src -DCATKIN_DEVEL_PREFIX=/home/yao/My_Ros_WorkSpace/can_workspace/devel -DCMAKE_INSTALL_PREFIX=/home/yao/My_Ros_WorkSpace/can_workspace/install -G Unix Makefiles" in "/home/yao/My_Ros_WorkSpace/can_workspace/build"
####
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using CATKIN_DEVEL_PREFIX: /home/yao/My_Ros_WorkSpace/can_workspace/devel
-- Using CMAKE_PREFIX_PATH: /opt/ros/melodic
-- This workspace overlays: /opt/ros/melodic
-- Found PythonInterp: /usr/bin/python2 (found suitable version "2.7.17", 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/yao/My_Ros_WorkSpace/can_workspace/build/test_results
-- 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.17") 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Using Python nosetests: /usr/bin/nosetests-2.7
-- catkin 0.7.29
-- BUILD_SHARED_LIBS is on
-- BUILD_SHARED_LIBS is on
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~  traversing 8 packages in topological order:
-- ~~  - ros_canopen (metapackage)
-- ~~  - can_msgs
-- ~~  - socketcan_interface
-- ~~  - canopen_master
-- ~~  - canopen_402
-- ~~  - canopen_chain_node
-- ~~  - socketcan_bridge
-- ~~  - canopen_motor_node
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- +++ processing catkin metapackage: 'ros_canopen'
-- ==> add_subdirectory(ros_canopen/ros_canopen)
-- +++ processing catkin package: 'can_msgs'
-- ==> add_subdirectory(ros_canopen/can_msgs)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- can_msgs: 1 messages, 0 services
-- +++ processing catkin package: 'socketcan_interface'
-- ==> add_subdirectory(ros_canopen/socketcan_interface)
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   chrono
--   system
--   thread
--   date_time
--   atomic
-- +++ processing catkin package: 'canopen_master'
-- ==> add_subdirectory(ros_canopen/canopen_master)
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   atomic
--   chrono
--   thread
--   system
--   date_time
-- +++ processing catkin package: 'canopen_402'
-- ==> add_subdirectory(ros_canopen/canopen_402)
-- Boost version: 1.65.1
-- +++ processing catkin package: 'canopen_chain_node'
-- ==> add_subdirectory(ros_canopen/canopen_chain_node)
-- Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   filesystem
--   system
-- canopen_chain_node: 0 messages, 2 services
-- +++ processing catkin package: 'socketcan_bridge'
-- ==> add_subdirectory(ros_canopen/socketcan_bridge)
-- +++ processing catkin package: 'canopen_motor_node'
-- ==> add_subdirectory(ros_canopen/canopen_motor_node)
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   thread
--   chrono
--   system
--   date_time
--   atomic
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Found MUPARSER: /usr/lib/x86_64-linux-gnu/libmuparser.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/yao/My_Ros_WorkSpace/can_workspace/build
####
#### Running command: "make -j4 -l4" in "/home/yao/My_Ros_WorkSpace/can_workspace/build"
####
Scanning dependencies of target std_msgs_generate_messages_lisp
Scanning dependencies of target _can_msgs_generate_messages_check_deps_Frame
Scanning dependencies of target std_msgs_generate_messages_cpp
Scanning dependencies of target std_msgs_generate_messages_py
[  0%] Built target std_msgs_generate_messages_cpp
[  0%] Built target std_msgs_generate_messages_lisp
[  0%] Built target std_msgs_generate_messages_py
Scanning dependencies of target std_msgs_generate_messages_eus
Scanning dependencies of target std_msgs_generate_messages_nodejs
Scanning dependencies of target socketcan_interface_string
[  0%] Built target std_msgs_generate_messages_eus
[  0%] Built target std_msgs_generate_messages_nodejs
[  1%] Building CXX object ros_canopen/socketcan_interface/CMakeFiles/socketcan_interface_string.dir/src/string.cpp.o
Scanning dependencies of target socketcan_interface_plugin
[  1%] Built target _can_msgs_generate_messages_check_deps_Frame
Scanning dependencies of target _canopen_chain_node_generate_messages_check_deps_SetObject
Scanning dependencies of target _canopen_chain_node_generate_messages_check_deps_GetObject
[  3%] Building CXX object ros_canopen/socketcan_interface/CMakeFiles/socketcan_interface_plugin.dir/src/socketcan_interface_plugin.cpp.o
[  3%] Built target _canopen_chain_node_generate_messages_check_deps_SetObject
Scanning dependencies of target rosgraph_msgs_generate_messages_cpp
[  3%] Built target _canopen_chain_node_generate_messages_check_deps_GetObject
[  3%] Built target rosgraph_msgs_generate_messages_cpp
Scanning dependencies of target std_srvs_generate_messages_cpp
[  3%] Built target std_srvs_generate_messages_cpp
Scanning dependencies of target rosgraph_msgs_generate_messages_eus
Scanning dependencies of target rosgraph_msgs_generate_messages_py
[  3%] Built target rosgraph_msgs_generate_messages_eus
[  3%] Built target rosgraph_msgs_generate_messages_py
Scanning dependencies of target rosgraph_msgs_generate_messages_nodejs
Scanning dependencies of target roscpp_generate_messages_lisp
[  3%] Built target rosgraph_msgs_generate_messages_nodejs
[  3%] Built target roscpp_generate_messages_lisp
Scanning dependencies of target std_srvs_generate_messages_lisp
Scanning dependencies of target roscpp_generate_messages_nodejs
[  3%] Built target std_srvs_generate_messages_lisp
[  3%] Built target roscpp_generate_messages_nodejs
Scanning dependencies of target roscpp_generate_messages_eus
Scanning dependencies of target diagnostic_msgs_generate_messages_cpp
[  3%] Built target roscpp_generate_messages_eus
[  3%] Built target diagnostic_msgs_generate_messages_cpp
Scanning dependencies of target rosgraph_msgs_generate_messages_lisp
Scanning dependencies of target diagnostic_msgs_generate_messages_lisp
[  3%] Built target rosgraph_msgs_generate_messages_lisp
[  3%] Built target diagnostic_msgs_generate_messages_lisp
Scanning dependencies of target diagnostic_msgs_generate_messages_nodejs
Scanning dependencies of target roscpp_generate_messages_py
[  3%] Built target diagnostic_msgs_generate_messages_nodejs
[  3%] Built target roscpp_generate_messages_py
Scanning dependencies of target diagnostic_msgs_generate_messages_py
Scanning dependencies of target std_srvs_generate_messages_py
[  3%] Built target diagnostic_msgs_generate_messages_py
[  3%] Built target std_srvs_generate_messages_py
Scanning dependencies of target roscpp_generate_messages_cpp
Scanning dependencies of target diagnostic_msgs_generate_messages_eus
[  3%] Built target roscpp_generate_messages_cpp
[  3%] Built target diagnostic_msgs_generate_messages_eus
Scanning dependencies of target std_srvs_generate_messages_nodejs
Scanning dependencies of target std_srvs_generate_messages_eus
[  3%] Built target std_srvs_generate_messages_nodejs
[  3%] Built target std_srvs_generate_messages_eus
Scanning dependencies of target controller_manager_msgs_generate_messages_cpp
Scanning dependencies of target controller_manager_msgs_generate_messages_py
[  3%] Built target controller_manager_msgs_generate_messages_cpp
[  3%] Built target controller_manager_msgs_generate_messages_py
Scanning dependencies of target controller_manager_msgs_generate_messages_nodejs
Scanning dependencies of target controller_manager_msgs_generate_messages_eus
[  3%] Built target controller_manager_msgs_generate_messages_nodejs
[  3%] Built target controller_manager_msgs_generate_messages_eus
Scanning dependencies of target controller_manager_msgs_generate_messages_lisp
Scanning dependencies of target can_msgs_generate_messages_py
[  3%] Built target controller_manager_msgs_generate_messages_lisp
[  4%] Generating Python from MSG can_msgs/Frame
Scanning dependencies of target can_msgs_generate_messages_cpp
[  4%] Generating C++ code from can_msgs/Frame.msg
[  6%] Generating Python msg __init__.py for can_msgs
[  6%] Built target can_msgs_generate_messages_cpp
Scanning dependencies of target can_msgs_generate_messages_lisp
[  7%] Generating Lisp code from can_msgs/Frame.msg
[  7%] Built target can_msgs_generate_messages_lisp
Scanning dependencies of target can_msgs_generate_messages_eus
[  9%] Generating EusLisp code from can_msgs/Frame.msg
[  9%] Built target can_msgs_generate_messages_py
[ 10%] Generating EusLisp manifest code for can_msgs
Scanning dependencies of target can_msgs_generate_messages_nodejs
[ 12%] Generating Javascript code from can_msgs/Frame.msg
[ 12%] Built target can_msgs_generate_messages_nodejs
Scanning dependencies of target canopen_chain_node_generate_messages_eus
[ 13%] Generating EusLisp code from canopen_chain_node/SetObject.srv
[ 15%] Generating EusLisp code from canopen_chain_node/GetObject.srv
[ 15%] Generating EusLisp manifest code for canopen_chain_node
[ 15%] Built target can_msgs_generate_messages_eus
Scanning dependencies of target canopen_chain_node_generate_messages_py
[ 16%] Generating Python code from SRV canopen_chain_node/SetObject
[ 18%] Generating Python code from SRV canopen_chain_node/GetObject
[ 20%] Generating Python srv __init__.py for canopen_chain_node
[ 20%] Built target canopen_chain_node_generate_messages_eus
Scanning dependencies of target canopen_chain_node_generate_messages_lisp
[ 21%] Generating Lisp code from canopen_chain_node/SetObject.srv
[ 23%] Generating Lisp code from canopen_chain_node/GetObject.srv
[ 23%] Built target canopen_chain_node_generate_messages_py
Scanning dependencies of target canopen_chain_node_generate_messages_nodejs
[ 24%] Generating Javascript code from canopen_chain_node/SetObject.srv
[ 24%] Built target canopen_chain_node_generate_messages_lisp
Scanning dependencies of target canopen_chain_node_generate_messages_cpp
[ 26%] Generating Javascript code from canopen_chain_node/GetObject.srv
[ 27%] Generating C++ code from canopen_chain_node/SetObject.srv
[ 27%] Built target canopen_chain_node_generate_messages_nodejs
[ 29%] Generating C++ code from canopen_chain_node/GetObject.srv
Scanning dependencies of target can_msgs_generate_messages
[ 29%] Built target can_msgs_generate_messages
[ 29%] Built target canopen_chain_node_generate_messages_cpp
Scanning dependencies of target canopen_chain_node_generate_messages
[ 29%] Built target canopen_chain_node_generate_messages
[ 30%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libsocketcan_interface_string.so
[ 30%] Built target socketcan_interface_string
Scanning dependencies of target canopen_bcm_sync
Scanning dependencies of target socketcan_dump
Scanning dependencies of target socketcan_bcm
[ 33%] Building CXX object ros_canopen/socketcan_interface/CMakeFiles/socketcan_dump.dir/src/candump.cpp.o
[ 33%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_bcm_sync.dir/src/bcm_sync.cpp.o
[ 35%] Building CXX object ros_canopen/socketcan_interface/CMakeFiles/socketcan_bcm.dir/src/canbcm.cpp.o
[ 36%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/socketcan_interface/socketcan_bcm
[ 36%] Built target socketcan_bcm
Scanning dependencies of target canopen_master
[ 38%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_master.dir/src/emcy.cpp.o
[ 40%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libsocketcan_interface_plugin.so
[ 40%] Built target socketcan_interface_plugin
Scanning dependencies of target socketcan_to_topic
[ 41%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/socketcan_to_topic.dir/src/rosconsole_bridge.cpp.o
[ 43%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/socketcan_interface/socketcan_dump
[ 44%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/socketcan_to_topic.dir/src/socketcan_to_topic.cpp.o
[ 44%] Built target socketcan_dump
Scanning dependencies of target topic_to_socketcan
[ 46%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/topic_to_socketcan.dir/src/rosconsole_bridge.cpp.o
[ 47%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/topic_to_socketcan.dir/src/topic_to_socketcan.cpp.o
[ 49%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/canopen_master/canopen_bcm_sync
[ 49%] Built target canopen_bcm_sync
[ 50%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_master.dir/src/node.cpp.o
[ 52%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_master.dir/src/objdict.cpp.o
[ 53%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libsocketcan_to_topic.so
[ 53%] Built target socketcan_to_topic
Scanning dependencies of target socketcan_to_topic_node
[ 55%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/socketcan_to_topic_node.dir/src/socketcan_to_topic_node.cpp.o
[ 56%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libtopic_to_socketcan.so
[ 56%] Built target topic_to_socketcan
Scanning dependencies of target socketcan_bridge_node
[ 58%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/socketcan_bridge_node.dir/src/socketcan_bridge_node.cpp.o
[ 60%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_master.dir/src/pdo.cpp.o
[ 61%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/socketcan_bridge/socketcan_to_topic_node
[ 61%] Built target socketcan_to_topic_node
[ 63%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_master.dir/src/sdo.cpp.o
Scanning dependencies of target topic_to_socketcan_node
[ 64%] Building CXX object ros_canopen/socketcan_bridge/CMakeFiles/topic_to_socketcan_node.dir/src/topic_to_socketcan_node.cpp.o
[ 66%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/socketcan_bridge/socketcan_bridge_node
[ 66%] Built target socketcan_bridge_node
[ 67%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libcanopen_master.so
[ 69%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/socketcan_bridge/topic_to_socketcan_node
[ 69%] Built target canopen_master
Scanning dependencies of target canopen_402
Scanning dependencies of target canopen_master_plugin
Scanning dependencies of target canopen_sync_node
[ 70%] Building CXX object ros_canopen/canopen_402/CMakeFiles/canopen_402.dir/src/motor.cpp.o
[ 72%] Building CXX object ros_canopen/canopen_master/CMakeFiles/canopen_master_plugin.dir/src/master_plugin.cpp.o
[ 73%] Building CXX object ros_canopen/canopen_chain_node/CMakeFiles/canopen_sync_node.dir/src/rosconsole_bridge.cpp.o
[ 73%] Built target topic_to_socketcan_node
Scanning dependencies of target canopen_ros_chain
[ 75%] Building CXX object ros_canopen/canopen_chain_node/CMakeFiles/canopen_ros_chain.dir/src/ros_chain.cpp.o
[ 76%] Building CXX object ros_canopen/canopen_chain_node/CMakeFiles/canopen_sync_node.dir/src/sync_node.cpp.o
[ 78%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libcanopen_master_plugin.so
[ 78%] Built target canopen_master_plugin
[ 80%] Building CXX object ros_canopen/canopen_chain_node/CMakeFiles/canopen_ros_chain.dir/src/rosconsole_bridge.cpp.o
[ 81%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libcanopen_402.so
[ 81%] Built target canopen_402
Scanning dependencies of target canopen_402_plugin
[ 83%] Building CXX object ros_canopen/canopen_402/CMakeFiles/canopen_402_plugin.dir/src/plugin.cpp.o
[ 84%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/canopen_chain_node/canopen_sync_node
[ 84%] Built target canopen_sync_node
[ 86%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libcanopen_402_plugin.so
[ 86%] Built target canopen_402_plugin
[ 87%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libcanopen_ros_chain.so
[ 87%] Built target canopen_ros_chain
Scanning dependencies of target canopen_chain_node
Scanning dependencies of target canopen_motor
[ 89%] Building CXX object ros_canopen/canopen_chain_node/CMakeFiles/canopen_chain_node.dir/src/chain_node.cpp.o
[ 90%] Building CXX object ros_canopen/canopen_motor_node/CMakeFiles/canopen_motor.dir/src/controller_manager_layer.cpp.o
[ 90%] Building CXX object ros_canopen/canopen_motor_node/CMakeFiles/canopen_motor.dir/src/handle_layer.cpp.o
[ 92%] Building CXX object ros_canopen/canopen_motor_node/CMakeFiles/canopen_motor.dir/src/motor_chain.cpp.o
[ 93%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/canopen_chain_node/canopen_chain_node
[ 93%] Built target canopen_chain_node
[ 95%] Building CXX object ros_canopen/canopen_motor_node/CMakeFiles/canopen_motor.dir/src/robot_layer.cpp.o
[ 96%] Linking CXX shared library /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/libcanopen_motor.so
[ 96%] Built target canopen_motor
Scanning dependencies of target canopen_motor_node
[ 98%] Building CXX object ros_canopen/canopen_motor_node/CMakeFiles/canopen_motor_node.dir/src/canopen_motor_chain_node.cpp.o
[100%] Linking CXX executable /home/yao/My_Ros_WorkSpace/can_workspace/devel/lib/canopen_motor_node/canopen_motor_node
[100%] Built target canopen_motor_node
yao@HP:~/My_Ros_WorkSpace/can_workspace$ 

然后用VScode打开这个工作空间
具体的配置方法可以看我前面的博客:ROS集成开发环境

cd  /home/yao/My_Ros_WorkSpace/can_workspace
code .

主要是使用socketcan-bridg这个功能包,它帮我们做了很多底层的工作
比如socketcan_to_topicnode.cpp:可以将上位机发布的can消息转为话题发布;topic_to_socketcannode.cpp:可以将底盘发送的信息转为话题进行订阅。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

六、ROS安装ros_canopen模块 的相关文章

随机推荐

  • 【杭电100题】2073 无限的路

    题目链接 xff1a http acm hdu edu cn showproblem php pid 61 2073 xff08 c语言的double类型printf lf 显示0 00000问题 xff09 xff1a https blo
  • 【杭电100题】2094 产生冠军

    原题 xff1a http acm hdu edu cn showproblem php pid 61 2094 最近很喜欢用map 把成功者 失败者都存起来 然后在成功者里把曾经失败的划掉 最后成功者里如果只剩一个人 xff0c 冠军产生
  • docker命令详解

    镜像下载 搜索镜像docker search 43 镜像名字 docker search centos 从Docker Hub中搜索符合条件的镜像 下载镜像 docker pull 43 镜像名字 docker pull centos 查看
  • uCos中的信号量机制

    文章目录 1 背景2 概述2 1 主要机制及应用2 2 同步或通信的基本方式 3 信号量3 1 主要机制及应用3 2 分类3 3 互斥信号量3 3 1 嵌套 递归 资源访问3 3 2 删除安全 3 4 各种互斥机制的比较3 5 二值信号量3
  • opencv里的几种图像数据格式(CV_8UC3,CV_32FC3,CV_64FC3等)

    opencv里的几种图像数据格式 xff08 CV 8UC3 xff0c CV 32FC3 xff0c CV 64FC3等 xff09 参考 xff1a https blog csdn net qq 29540745 article det
  • android:使用audiotrack 类播放wav文件

    参考 xff1a http mindtherobot com blog 624 android audio play an mp3 file on an audiotrack http baike baidu com view 14471
  • 逆变电路

    逆变的概念 与整流相对应 xff0c 直流电 变成 交流电 交流侧接电网 xff0c 为 有源逆变 交流侧接负载 xff0c 为 无源逆变 xff0c 本章主要讲述无源逆变 逆变与变频 变频电路 xff1a 分为 交交变频 和 交直交变频
  • windows找不到树莓派IP地址

    树莓派用网线连接电脑 xff0c 第一次正常 xff0c 而第二次用arp a找不到树莓派的地址 xff0c 网上查资料 xff0c 网络共享关闭再重新打开依旧找不到 xff0c 后来发现网络处以太网一直显示正在识别 xff0c 把以太网禁
  • unity报错NullReferenceException: Object reference not set to an instance of an object

    在做unity3d的UDP通信时 xff0c 遇到了该的错误 之前初始化用的Start xff0c 运行正常 xff0c 某天突然报错 xff0c 后面看到了文章 https blog csdn net u011185231 article
  • Unity3D UDP通信

    补一下前面遇到的问题 最近在做树莓派与Unity3D的UDP通信 xff0c 树莓派通过网线连接电脑 xff0c 设置网络共享 树莓派作为客户端 xff08 python xff09 xff0c Unity3D作为服务端 xff08 C x
  • ROS机械臂模型的调试

    用传感器串口输出数据控制虚拟机ROS中的6DOF机械臂模型 xff08 每次重新调试都需要一定的时间熟悉过程 xff0c 所以记录一下 不记录代码只记录调试过程 xff09 串口配置 传感器通过USB转TTL模块接到电脑 xff0c 在虚拟
  • openrave

    配置IKFAST求解器 xff0c 装openrave装了一天终于在差三分钟十一点的时候出来了界面 ubuntu18的boost默认1 65 xff0c 但是好像和openrave不匹配 xff0c 换成了1 58 如果后续使用没问题就来详
  • ROS1代码转ROS2

    先占个坑 xff0c 等我做完写总结
  • 四元数基本概念&&四元数3D旋转(求两个四元数的夹角)

    四元数基本概念 1 四元数定义向量形式 xff1a 模长 xff1a 2 四元数加减法 3 四元数的逆和共轭 当q是单位四元数时 xff0c 4 四元数乘法4 1 标量乘法 xff1b 标量s 四元数与标量相乘满足乘法交换律 xff1a 4
  • 树莓派安装64bit系统并安装miniconda

    树莓派安装64bit系统并安装miniconda 某机械臂只有arm64的动态链接库 xff0c 所以如题 中间过程无比曲折 xff0c 记录一下 1 安装64bit系统 1 1 下载系统 树莓派系统官网 xff1a https www r
  • 四旋翼无人机学习第23节--原理图与PCB库开源计划

    在之前的教程中 xff0c 我们学到了原理图和PCB库的绘制方法 xff0c 了解了绘制的基本方法 在之后的学习中 xff0c 我打算从头开源自己的原理图和PCB库 不定期更新 xff0c 方便大家快速的进行PCB设计 这里有几点想要说明
  • 基于openmv的无人机Apriltag动态追踪降落完整项目资料(labview+openmv+apriltag+正点原子四轴)

    前言 xff1a 之前假期做的一个小项目 xff0c 炸了好几套桨叶233 xff0c 分享出来希望能帮助更多人快速学习 使用正点原子ATK MiniFly 飞行器二次开发多旋翼Apriltag追踪 xff1b 使用LABVIEW自主设计地
  • 某公司算法岗笔试题(部分)

    今天参加了第一次笔试 xff0c 准备的不是很好 xff0c 分享几道题 1 选择题 xff1a int i 61 1 const int j 61 1 下列错误的是 xff1a const int p1 61 amp i const in
  • 五、ROS使用serial包进行串口通信

    五 ROS使用serial包进行串口通信 1 下载串口调试助手CuteCom2 下载虚拟串口模拟器socat3 下载串口调试助手minicom4 安装serial串口功能包5 创建工作空间6 创建功能包7 创建发布者8 配置CMakeLis
  • 六、ROS安装ros_canopen模块

    六 ROS安装ros canopen模块 1 查看自己的ROS版本2 下载ros canopen源码 1 查看自己的ROS版本 首先查看自己的ROS版本 xff1a 我的是melodic 终端1 roscore 终端2 rosparam l