unitreerobotics / unitree_ros

BSD 3-Clause "New" or "Revised" License
463 stars 224 forks source link

Problems with Creating the Environment for A1 #48

Closed staycoolish closed 2 years ago

staycoolish commented 2 years ago

UPDATE ( SUMMARY OF THE PROBLEM)

legged_messages, which I've built before unitree_legged_real, is not seen by ROS for some reason. Actually, as you can see, the message type is installed:

Screenshot from 2022-06-20 15-06-33

but when I catkin_make , the message is not seen (it does not have member pitch for instance, according to the error, but it has that member (see the above image).

Screenshot from 2022-06-20 15-07-12


Hello, I am trying to connect A1 to ROS (Noetic) (and I also want to simulate A1 in Gazebo later). I've done the following:

  1. I downloaded unitree_legged_sdk version 3.2; put it into catkin_ws/src; and then built it.

  2. I downloaded unitree_ros_to_real version 3.2.1; put it into catkin_we/src. I then built unitree_legged_msgs. Then I try to build unitree_legged_real or try to catkin_make, but I always get this error:


[ 85%] Building CXX object unitree_ros_to_real/unitree_legged_real/CMakeFiles/velocity_lcm.dir/src/exe/velocity_mode.cpp.o
[ 85%] Building CXX object unitree_ros_to_real/unitree_legged_real/CMakeFiles/walk_lcm.dir/src/exe/walk_mode.cpp.o
[ 87%] Building CXX object unitree_ros_to_real/unitree_legged_real/CMakeFiles/torque_lcm.dir/src/exe/torque_mode.cpp.o
[ 89%] Building CXX object unitree_ros_to_real/unitree_legged_real/CMakeFiles/position_lcm.dir/src/exe/position_mode.cpp.o
[ 92%] Built target lcm_server_3_2
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::LowState ToRos(UNITREE_LEGGED_SDK::LowState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:225:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘commVersion’
  225 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:226:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘robotID’
  226 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::LowState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  227 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  227 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::LowCmd ToLcm(unitree_legged_msgs::LowCmd&, UNITREE_LEGGED_SDK::LowCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:250:27: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  250 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:251:23: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘robotID’
  251 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:252:18: error: cannot convert ‘unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  252 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:258:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  258 |         lcm.led[i].r = ros.led[i].r;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:259:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  259 |         lcm.led[i].g = ros.led[i].g;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:260:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  260 |         lcm.led[i].b = ros.led[i].b;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::HighState ToRos(UNITREE_LEGGED_SDK::HighState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:274:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘commVersion’
  274 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:275:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘robotID’
  275 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::HighState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/position_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:280:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  280 |     ros.forwardSpeed = lcm.forwardSpeed;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:281:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sideSpeed’
  281 |     ros.sideSpeed = lcm.sideSpeed;
      |         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:282:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  282 |     ros.rotateSpeed = lcm.rotateSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:284:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘updownSpeed’
  284 |     ros.updownSpeed = lcm.updownSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:285:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardPosition’
  285 |     ros.forwardPosition = lcm.forwardPosition;
      |         ^~~~~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:286:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sidePosition’
  286 |     ros.sidePosition = lcm.sidePosition;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:297:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘tick’
  297 |     ros.tick = lcm.tick;
      |         ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::HighCmd ToLcm(unitree_legged_msgs::HighCmd&, UNITREE_LEGGED_SDK::HighCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:310:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  310 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:311:23: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘robotID’
  311 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:312:18: error: cannot convert ‘unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  312 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:315:28: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  315 |     lcm.forwardSpeed = ros.forwardSpeed;
      |                            ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:316:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘sideSpeed’
  316 |     lcm.sideSpeed = ros.sideSpeed;
      |                         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:317:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  317 |     lcm.rotateSpeed = ros.rotateSpeed;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:320:19: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘yaw’
  320 |     lcm.yaw = ros.yaw;
      |                   ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:321:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘pitch’
  321 |     lcm.pitch = ros.pitch;
      |                     ^~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:322:20: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘roll’
  322 |     lcm.roll = ros.roll;
      |                    ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:330:32: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘AppRemote’
  330 |         lcm.AppRemote[i] = ros.AppRemote[i];
      |                                ^~~~~~~~~
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::LowState ToRos(UNITREE_LEGGED_SDK::LowState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:225:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘commVersion’
  225 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:226:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘robotID’
  226 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::LowState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  227 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  227 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::LowCmd ToLcm(unitree_legged_msgs::LowCmd&, UNITREE_LEGGED_SDK::LowCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:250:27: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  250 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:251:23: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘robotID’
  251 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:252:18: error: cannot convert ‘unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  252 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:258:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  258 |         lcm.led[i].r = ros.led[i].r;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:259:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  259 |         lcm.led[i].g = ros.led[i].g;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:260:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  260 |         lcm.led[i].b = ros.led[i].b;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::HighState ToRos(UNITREE_LEGGED_SDK::HighState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:274:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘commVersion’
  274 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:275:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘robotID’
  275 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::HighState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/velocity_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:280:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  280 |     ros.forwardSpeed = lcm.forwardSpeed;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:281:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sideSpeed’
  281 |     ros.sideSpeed = lcm.sideSpeed;
      |         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:282:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  282 |     ros.rotateSpeed = lcm.rotateSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:284:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘updownSpeed’
  284 |     ros.updownSpeed = lcm.updownSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:285:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardPosition’
  285 |     ros.forwardPosition = lcm.forwardPosition;
      |         ^~~~~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:286:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sidePosition’
  286 |     ros.sidePosition = lcm.sidePosition;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:297:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘tick’
  297 |     ros.tick = lcm.tick;
      |         ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::HighCmd ToLcm(unitree_legged_msgs::HighCmd&, UNITREE_LEGGED_SDK::HighCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:310:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  310 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:311:23: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘robotID’
  311 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:312:18: error: cannot convert ‘unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  312 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:315:28: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  315 |     lcm.forwardSpeed = ros.forwardSpeed;
      |                            ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:316:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘sideSpeed’
  316 |     lcm.sideSpeed = ros.sideSpeed;
      |                         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:317:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  317 |     lcm.rotateSpeed = ros.rotateSpeed;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:320:19: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘yaw’
  320 |     lcm.yaw = ros.yaw;
      |                   ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:321:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘pitch’
  321 |     lcm.pitch = ros.pitch;
      |                     ^~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:322:20: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘roll’
  322 |     lcm.roll = ros.roll;
      |                    ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:330:32: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘AppRemote’
  330 |         lcm.AppRemote[i] = ros.AppRemote[i];
      |                                ^~~~~~~~~
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::LowState ToRos(UNITREE_LEGGED_SDK::LowState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:225:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘commVersion’
  225 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:12:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::LowState ToRos(UNITREE_LEGGED_SDK::LowState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:225:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘commVersion’
  225 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:226:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘robotID’
  226 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:226:9: error: ‘unitree_legged_msgs::LowState’ {aka ‘struct unitree_legged_msgs::LowState_<std::allocator<void> >’} has no member named ‘robotID’
  226 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::LowState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  227 |     ros.SN = lcm.SN;
      |                  ^~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::LowState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  227 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  227 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:12:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:227:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  227 |     ros.SN = lcm.SN;
      |                  ^~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::LowCmd ToLcm(unitree_legged_msgs::LowCmd&, UNITREE_LEGGED_SDK::LowCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:250:27: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  250 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:251:23: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘robotID’
  251 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:252:18: error: cannot convert ‘unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  252 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:12:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::LowCmd ToLcm(unitree_legged_msgs::LowCmd&, UNITREE_LEGGED_SDK::LowCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:250:27: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  250 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:251:23: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘robotID’
  251 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:252:18: error: cannot convert ‘unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  252 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::LowCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:258:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  258 |         lcm.led[i].r = ros.led[i].r;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:259:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  259 |         lcm.led[i].g = ros.led[i].g;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:260:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  260 |         lcm.led[i].b = ros.led[i].b;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:258:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  258 |         lcm.led[i].r = ros.led[i].r;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:259:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  259 |         lcm.led[i].g = ros.led[i].g;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:260:28: error: ‘unitree_legged_msgs::LowCmd’ {aka ‘struct unitree_legged_msgs::LowCmd_<std::allocator<void> >’} has no member named ‘led’
  260 |         lcm.led[i].b = ros.led[i].b;
      |                            ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::HighState ToRos(UNITREE_LEGGED_SDK::HighState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:274:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘commVersion’
  274 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:275:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘robotID’
  275 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::HighState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  276 |     ros.SN = lcm.SN;
      |                  ^~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘unitree_legged_msgs::HighState ToRos(UNITREE_LEGGED_SDK::HighState&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:274:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘commVersion’
  274 |     ros.commVersion = lcm.commVersion;
      |         ^~~~~~~~~~~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:275:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘robotID’
  275 |     ros.robotID = lcm.robotID;
      |         ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: error: no match for ‘operator=’ (operand types are ‘unitree_legged_msgs::HighState_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} and ‘uint32_t’ {aka ‘unsigned int’})
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:6:
/usr/include/boost/array.hpp:172:21: note: candidate: ‘template<class T2> boost::array<T, N>& boost::array<T, N>::operator=(const boost::array<T2, N>&) [with T2 = T2; T = unsigned int; long unsigned int N = 2]’
  172 |         array<T,N>& operator= (const array<T2,N>& rhs) {
      |                     ^~~~~~~~
/usr/include/boost/array.hpp:172:21: note:   template argument deduction/substitution failed:
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:12:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:276:18: note:   mismatched types ‘const boost::array<T2, 2>’ and ‘uint32_t’ {aka ‘unsigned int’}
  276 |     ros.SN = lcm.SN;
      |                  ^~
In file included from /opt/ros/noetic/include/ros/message.h:38,
                 from /opt/ros/noetic/include/ros/publisher.h:33,
                 from /opt/ros/noetic/include/ros/node_handle.h:32,
                 from /opt/ros/noetic/include/ros/ros.h:45,
                 from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:6:
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(const boost::array<unsigned int, 2>&)’
   61 |     class array {
      |           ^~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘const boost::array<unsigned int, 2>&’
/usr/include/boost/array.hpp:61:11: note: candidate: ‘boost::array<unsigned int, 2>& boost::array<unsigned int, 2>::operator=(boost::array<unsigned int, 2>&&)’
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:13:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:280:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  280 |     ros.forwardSpeed = lcm.forwardSpeed;
      |         ^~~~~~~~~~~~
/usr/include/boost/array.hpp:61:11: note:   no known conversion for argument 1 from ‘uint32_t’ {aka ‘unsigned int’} to ‘boost::array<unsigned int, 2>&&’
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:281:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sideSpeed’
  281 |     ros.sideSpeed = lcm.sideSpeed;
      |         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:282:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  282 |     ros.rotateSpeed = lcm.rotateSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:284:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘updownSpeed’
  284 |     ros.updownSpeed = lcm.updownSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:285:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardPosition’
  285 |     ros.forwardPosition = lcm.forwardPosition;
      |         ^~~~~~~~~~~~~~~
In file included from /home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/torque_mode.cpp:12:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:280:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  280 |     ros.forwardSpeed = lcm.forwardSpeed;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:286:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sidePosition’
  286 |     ros.sidePosition = lcm.sidePosition;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:281:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sideSpeed’
  281 |     ros.sideSpeed = lcm.sideSpeed;
      |         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:282:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  282 |     ros.rotateSpeed = lcm.rotateSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:284:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘updownSpeed’
  284 |     ros.updownSpeed = lcm.updownSpeed;
      |         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:285:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘forwardPosition’
  285 |     ros.forwardPosition = lcm.forwardPosition;
      |         ^~~~~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:297:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘tick’
  297 |     ros.tick = lcm.tick;
      |         ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:286:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘sidePosition’
  286 |     ros.sidePosition = lcm.sidePosition;
      |         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:297:9: error: ‘unitree_legged_msgs::HighState’ {aka ‘struct unitree_legged_msgs::HighState_<std::allocator<void> >’} has no member named ‘tick’
  297 |     ros.tick = lcm.tick;
      |         ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::HighCmd ToLcm(unitree_legged_msgs::HighCmd&, UNITREE_LEGGED_SDK::HighCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:310:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  310 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:311:23: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘robotID’
  311 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:312:18: error: cannot convert ‘unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  312 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:315:28: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  315 |     lcm.forwardSpeed = ros.forwardSpeed;
      |                            ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:316:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘sideSpeed’
  316 |     lcm.sideSpeed = ros.sideSpeed;
      |                         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:317:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  317 |     lcm.rotateSpeed = ros.rotateSpeed;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h: In function ‘UNITREE_LEGGED_SDK::HighCmd ToLcm(unitree_legged_msgs::HighCmd&, UNITREE_LEGGED_SDK::HighCmd)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:310:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘commVersion’
  310 |     lcm.commVersion = ros.commVersion;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:320:19: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘yaw’
  320 |     lcm.yaw = ros.yaw;
      |                   ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:321:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘pitch’
  321 |     lcm.pitch = ros.pitch;
      |                     ^~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:311:23: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘robotID’
  311 |     lcm.robotID = ros.robotID;
      |                       ^~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:322:20: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘roll’
  322 |     lcm.roll = ros.roll;
      |                    ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:312:18: error: cannot convert ‘unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type’ {aka ‘boost::array<unsigned int, 2>’} to ‘uint32_t’ {aka ‘unsigned int’} in assignment
  312 |     lcm.SN = ros.SN;
      |              ~~~~^~
      |                  |
      |                  unitree_legged_msgs::HighCmd_<std::allocator<void> >::_SN_type {aka boost::array<unsigned int, 2>}
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:315:28: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  315 |     lcm.forwardSpeed = ros.forwardSpeed;
      |                            ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:316:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘sideSpeed’
  316 |     lcm.sideSpeed = ros.sideSpeed;
      |                         ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:317:27: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  317 |     lcm.rotateSpeed = ros.rotateSpeed;
      |                           ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:330:32: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘AppRemote’
  330 |         lcm.AppRemote[i] = ros.AppRemote[i];
      |                                ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:320:19: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘yaw’
  320 |     lcm.yaw = ros.yaw;
      |                   ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:321:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘pitch’
  321 |     lcm.pitch = ros.pitch;
      |                     ^~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:322:20: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘roll’
  322 |     lcm.roll = ros.roll;
      |                    ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/include/convert.h:330:32: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘AppRemote’
  330 |         lcm.AppRemote[i] = ros.AppRemote[i];
      |                                ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp: In function ‘int mainHelper(int, char**, TLCM&)’:
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:61:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
   61 |         SendHighROS.forwardSpeed = 0.0f;
      |                     ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:62:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘sideSpeed’
   62 |         SendHighROS.sideSpeed = 0.0f;
      |                     ^~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:63:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
   63 |         SendHighROS.rotateSpeed = 0.0f;
      |                     ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:67:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘roll’
   67 |         SendHighROS.roll  = 0;
      |                     ^~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:68:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘pitch’
   68 |         SendHighROS.pitch = 0;
      |                     ^~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:69:21: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘yaw’
   69 |         SendHighROS.yaw = 0;
      |                     ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:78:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘pitch’
   78 |             SendHighROS.pitch = 0.3f;
      |                         ^~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:83:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘yaw’
   83 |             SendHighROS.yaw = 0.2f;
      |                         ^~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:107:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  107 |             SendHighROS.forwardSpeed = 0.1f; // -1  ~ +1
      |                         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:112:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘forwardSpeed’
  112 |             SendHighROS.forwardSpeed = -0.2f; // -1  ~ +1
      |                         ^~~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:117:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  117 |             SendHighROS.rotateSpeed = 0.1f;   // turn
      |                         ^~~~~~~~~~~
/home/staycoolish/catkin_ws/src/unitree_ros_to_real/unitree_legged_real/src/exe/walk_mode.cpp:122:25: error: ‘unitree_legged_msgs::HighCmd’ {aka ‘struct unitree_legged_msgs::HighCmd_<std::allocator<void> >’} has no member named ‘rotateSpeed’
  122 |             SendHighROS.rotateSpeed = -0.1f;   // turn
      |                         ^~~~~~~~~~~
make[2]: *** [unitree_ros_to_real/unitree_legged_real/CMakeFiles/torque_lcm.dir/build.make:63: unitree_ros_to_real/unitree_legged_real/CMakeFiles/torque_lcm.dir/src/exe/torque_mode.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1916: unitree_ros_to_real/unitree_legged_real/CMakeFiles/torque_lcm.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** [unitree_ros_to_real/unitree_legged_real/CMakeFiles/position_lcm.dir/build.make:63: unitree_ros_to_real/unitree_legged_real/CMakeFiles/position_lcm.dir/src/exe/position_mode.cpp.o] Error 1
make[2]: *** [unitree_ros_to_real/unitree_legged_real/CMakeFiles/velocity_lcm.dir/build.make:63: unitree_ros_to_real/unitree_legged_real/CMakeFiles/velocity_lcm.dir/src/exe/velocity_mode.cpp.o] Error 1
make[2]: *** [unitree_ros_to_real/unitree_legged_real/CMakeFiles/walk_lcm.dir/build.make:63: unitree_ros_to_real/unitree_legged_real/CMakeFiles/walk_lcm.dir/src/exe/walk_mode.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1694: unitree_ros_to_real/unitree_legged_real/CMakeFiles/velocity_lcm.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:2161: unitree_ros_to_real/unitree_legged_real/CMakeFiles/position_lcm.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:1804: unitree_ros_to_real/unitree_legged_real/CMakeFiles/walk_lcm.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Invoking "make -j8 -l8" failed

What is wrong? What is the right way to build this environment?

I appreciate any help. If there is any tutorial on this, I would like to check it as well. I tried everything (in bashrc., all the variables are defined, which are:

source /opt/ros/melodic/setup.bash
source /usr/share/gazebo-8/setup.sh
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=~/catkin_ws:${ROS_PACKAGE_PATH}
export GAZEBO_PLUGIN_PATH=~/catkin_ws/devel/lib:${GAZEBO_PLUGIN_PATH}
export LD_LIBRARY_PATH=~/catkin_ws/devel/lib:${LD_LIBRARY_PATH}
# 3_1, 3_2
export UNITREE_SDK_VERSION=3_2
export UNITREE_LEGGED_SDK_PATH=~/unitree_legged_sdk
export ALIENGO_SDK_PATH=~/aliengo_sdk
# amd64, arm32, arm64
export UNITREE_PLATFORM="amd64"

What is wrong is a mystery to me. Thank you.

staycoolish commented 2 years ago

When I downloaded the files, I changed the names of the folders: I made unitree_legged_sdk-3.2 as unitree_legged_sdk , and unitree_ros_to_real-3.2.1 as unitree_ros_to_real . Don't do this. When I leave the names unchanged, it compiled without any problems. BUT don't do this either. My main mistake was that, I included the folder unitree_ros_to_real-3.2.1 in catkin_ws/src, but what I should've done was to include the folders inside the folder unitree_ros_to_real-3.2.1 , namely unitree_legged_msgs and unitree_legged_real. The same applies to unitree_ros as well.

1. Just put unitree_legged_sdk-3.2 and the folders inside unitree_ros_to_real-3.2.1 (unitree_legged_msgs and unitree_legged_real) into catkin_ws 2. Write those stuff into bashrc

source /opt/ros/melodic/setup.bash
source /usr/share/gazebo-8/setup.sh
source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=~/catkin_ws:${ROS_PACKAGE_PATH}
export GAZEBO_PLUGIN_PATH=~/catkin_ws/devel/lib:${GAZEBO_PLUGIN_PATH}
export LD_LIBRARY_PATH=~/catkin_ws/devel/lib:${LD_LIBRARY_PATH}
# 3_1, 3_2
export UNITREE_SDK_VERSION=3_2
export UNITREE_LEGGED_SDK_PATH=~/catkin_ws/src/unitree_legged_sdk-3.2
export ALIENGO_SDK_PATH=~/aliengo_sdk
# amd64, arm32, arm64
export UNITREE_PLATFORM="amd64"

3. build unitree legged sdk 4. catkin_make