lnotspotl / tbai

Towards better athletic intelligence
52 stars 11 forks source link

tbai_mpc building failed #15

Closed Timofeibb closed 2 weeks ago

Timofeibb commented 2 weeks ago

Hi @lnotspotl ,

During compilation, an error about missing one file in the OCS2 <ocs2_switched_model_msgs/local_terrain.h> folder occurs. I checked the provided git file and did not find any code in it. There is no such file on the official github page of OCS2 either [https://github.com/lnotspotl/ocs2/tree/main/ocs2_robotic_examples/ocs2_perceptive_anymal/ocs2_switched_model_msgs].

fatal error: ocs2_switched_model_msgs/local_terrain.h: No such file or directory

tbai_mpc/src/reference/ReferenceTrajectoryGenerator.cpp

Am I doing something wrong?

rua0ra1 commented 2 weeks ago

Hi @Timofeibb , Can you double check whether you installed the git repo recursively and installed the dependencies using rosdep as shown below

mkdir -p <your-file>/src && cd <your-file> && catkin init && cd src
git clone git@github.com:lnotspotl/tbai.git --recursive

# Install other dependencies using rosdep
cd .. && rosdep install --from-paths src --ignore-src -r -y && cd src/tbai
Timofeibb commented 2 weeks ago

Hi @rua0ra1,

Install other dependencies using rosdep

cd .. && rosdep install --from-paths src --ignore-src -r -y && cd src/tbai

I get this error from OCS2, tbai_mpc and others while installing rosdep

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
ocs2_qp_solver: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_perceptive: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_ballbot_ros: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_legged_robot_raisim: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_raisim_core: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_ballbot: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_cartpole_ros: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_raisim_ros: Cannot locate rosdep definition for [cmake_clang_tools]
tbai_mpc: Cannot locate rosdep definition for [ocs2_ros_interface]
cgal5_catkin: Cannot locate rosdep definition for [libmpfr-dev]
ocs2_mpc: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_ros_interfaces: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_switched_model_interface: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_mpcnet_core: Cannot locate rosdep definition for [cmake_clang_tools]
grid_map_filters_rsl: Cannot locate rosdep definition for [cmake_code_coverage]
ocs2_ballbot_mpcnet: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_double_integrator: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_ddp: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_double_integrator_ros: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_robotic_tools: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_mobile_manipulator: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_self_collision_visualization: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_python_interface: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_legged_robot_mpcnet: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_centroidal_model: Cannot locate rosdep definition for [cmake_clang_tools]
elevation_mapping_demos: Cannot locate rosdep definition for [point_cloud_io]
ocs2_sphere_approximation: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_oc: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_mobile_manipulator_ros: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_self_collision: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_core: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_cartpole: Cannot locate rosdep definition for [cmake_clang_tools]
ocs2_frank_wolfe: Cannot locate rosdep definition for [libglpk-dev]
ocs2_pinocchio_interface: Cannot locate rosdep definition for [cmake_clang_tools]
Continuing to install resolvable dependencies...
#All required rosdeps installed successfully

If it's important, I use ubuntu 20.04 and ros noetic.

rua0ra1 commented 2 weeks ago

Hi @Timofeibb, Even I faced this issue sometimes. @lnotspotl needs to comment on that. but it should not affect your build process.

# Build tbai
catkin config -DCMAKE_BUILD_TYPE=Release
bash ./tbai.bash --build  # This will only build the necessary packages
# Source tbai
cd ../.. && source devel/setup.bash

can you run above build commands. If its not working. It would be helpful for me to debug if you can share all the commands you are using to build this library

Timofeibb commented 2 weeks ago

I reinstalled all packages and it seems to all work fine, I have one more question, is it possible to control the robot only with a joystick or are there other ways to do it? 屏幕截图 2024-08-29 135215

rua0ra1 commented 2 weeks ago

Hi @Timofeibb , glad it is working for you. I believe you can only control it with joystick now. But, I am certainly interested to work on the implementation to control it with keyboard too. Thank you

peci1 commented 2 weeks ago

is it possible to control the robot only with a joystick or are there other ways to do it?

You can control the robot with anything that publishes cmd_vel.

Timofeibb commented 2 weeks ago

@peci1 I tried controlling the robot via rqt cmd_vel, but nothing worked. I wrote a simple code that can redirect the signal from the keyboard and simulate joystick operation https://github.com/Timofeibb/ROS-keyboard-to-joy. For now i have no questions.

lnotspotl commented 2 weeks ago

@Timofeibb It is possible to provide a velocity reference in the form of Twist messages. Take a look at the reference_generator section of this example config. If you change the type from joystick to twist, you will be able to control your robot by sending Twist messages to the configurable topic (parameterized by the value in the same example config)

Timofeibb commented 1 week ago

@lnotspotl , thank for your reply, I will take this information into consideration. The problem was that I am working on WSL2 and there is no joystick support out of the box. So I spent some free time and wrote a simple code to simulate the joystick. But later I thought that this is not the best option and modified the linux kernel to include the missing modules. Now everything works great. BTW I think this repository is the best use of OCS2 on the whole github. Have you tried this code on the real robot?