Git Product home page Git Product logo

cheetah-software's Introduction

Cheetah-Software

This repository contains the Robot and Simulation software project. For a getting started guide, see the documentation folder.

The common folder contains the common library with dynamics and utilities The resources folder will contain data files, like CAD of the robot used for the visualization The robot folder will contain the robot program The sim folder will contain the simulation program. It is the only program which depends on QT. The third-party will contain small third party libraries that we have modified. This should just be libsoem for Cheetah 3, which Pat modified at one point.

Build

To build all code:

mkdir build
cd build
cmake ..
./../scripts/make_types.sh
make -j4

If you are building code on your computer that you would like to copy over to the mini cheetah, you must replace the cmake command with

cmake -DMINI_CHEETAH_BUILD=TRUE

otherwise it will not work. If you are building mini cheetah code one the mini cheetah computer, you do not need to do this.

This build process builds the common library, robot code, and simulator. If you just change robot code, you can simply run make -j4 again. If you change LCM types, you'll need to run cmake ..; make -j4. This automatically runs make_types.sh.

To test the common library, run common/test-common. To run the robot code, run robot/robot. To run the simulator, run sim/sim.

Part of this build process will automatically download the gtest software testing framework and sets it up. After it is done building, it will produce a libbiomimetics.a static library and an executable test-common. Run the tests with common/test-common. This output should hopefully end with

[----------] Global test environment tear-down
[==========] 18 tests from 3 test cases ran. (0 ms total)
[  PASSED  ] 18 tests.

Run simulator

To run the simulator:

  1. Open the control board
./sim/sim
  1. In the another command window, run the robot control code
./user/${controller_folder}/${controller_name} ${robot_name} ${target_system}

Example)

./user/JPos_Controller/jpos_ctrl 3 s

3: Cheetah 3, m: Mini Cheetah s: simulation, r: robot

Run Mini cheetah

  1. Create build folder mkdir mc-build
  2. Build as mini cheetah executable cd mc-build; cmake -DMINI_CHEETAH_BUILD=TRUE ..; make -j
  3. Connect to mini cheetah over ethernet, verify you can ssh in
  4. Copy program to mini cheetah with ../scripts/send_to_mini_cheetah.sh
  5. ssh into the mini cheetah ssh [email protected]
  6. Enter the robot program folder cd robot-software-....
  7. Run robot code ./run_mc.sh

Dependencies:

To use Ipopt, use CMake Ipopt option. Ex) cmake -DIPOPT_OPTION=ON ..

cheetah-software's People

Contributors

dicarlo236 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cheetah-software's Issues

No vectornav data in simulator.

I launched launch_lcm_spy.sh while running simulator, hoping to see imu measurements, but I didn't find vectornav_lcmt in the stream, also not able to find them in lcm log file.

Did I run simulator correctly? Or is there anything wrong with installation?

Can the full state of the simulator be saved/loaded?

Assume I am running a simulation. Is it possible to "save" the full state of the simulation, continue with it, and then "load" the previous state to return back to it?

Saving is fine if it happens in memory, but writing it to disk would be preferable.

how to understand "interleave_y"

hello, everone,
in file "ConvexMPCLocomotion.cpp",
The y-coordinate of the foot placement has an offset, interleave_ y,which effect is like this:
When the absolute value of desired forward speed (v_des_robot[0])is bigger, the front two feet gradually close together and the rear two feet separate.
My understanding is that if the forward speed is relatively high, in order to stabilize, the center of mass should be slightly forward, just like a person walking. Then, in trot gait, the center of the intersection of diagonal leg lines should be directly below the center of mass
However, they take an absolute value for the forward velocity, which results in the opposite effect when the robot moves backward
How do you understand this offset?

RC Controller,

Would you mind to share the information about the model of remote control that you are using with this code? Is it similar to this one, this one, or something else?
I want to test, MIT_Control with the simulator and it will be easier to use the same RC that you are using.
Thanks,

There is an error while building the code

/home/huangqifeng/Downloads/master/sim/src/SimControlPanel.cpp: In lambda function:
/home/huangqifeng/Downloads/master/sim/src/SimControlPanel.cpp:408:12: error: no matching function for call to ‘QMetaObject::invokeMethod(SimControlPanel*, SimControlPanel::on_startButton_clicked()::<lambda()>::<lambda(std::__cxx11::string)>::<lambda()>)’
});
^

supported IMU

Hi, guys.
Which kind of IMU can work with the latest version of the software?

Cann't find Qt5Gamepad

When I run on the ubuntu 18.04
cmake ..
I got

Scanning dependencies of target googletest-download
[ 11%] Skipping update step for 'googletest-download'
[ 22%] No configure step for 'googletest-download'
[ 33%] No build step for 'googletest-download'
[ 44%] No install step for 'googletest-download'
[ 55%] No test step for 'googletest-download'
[ 66%] Completed 'googletest-download'
[100%] Built target googletest-download
/home/qiayuanliao/Project/Cheetah-Software/build/googletest-src
/home/qiayuanliao/Project/Cheetah-Software/build/googletest-build
-- /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.9.5
CMake Warning at sim/CMakeLists.txt:44 (find_package):
  By not providing "FindQt5Gamepad.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "Qt5Gamepad", but CMake did not find one.
  Could not find a package configuration file provided by "Qt5Gamepad" with
  any of the following names:
    Qt5GamepadConfig.cmake
    qt5gamepad-config.cmake
  Add the installation prefix of "Qt5Gamepad" to CMAKE_PREFIX_PATH or set
  "Qt5Gamepad_DIR" to a directory containing one of the above files.  If
  "Qt5Gamepad" provides a separate development package or SDK, be sure it has
  been installed. 

but I can run the Qt5 Gamepad on Qt Creator

What's the function of rt_interface_lcm?

It seems to read data from sbus, and modify the attributes of “main_control_settings” based on the data. But I don't know who send data to sbus , and who publish message on "INTERFACE_gui_main_control_settings" channel with LCM, and how does “main_control_settings” work in the program.

Python controller needed?

I have made a python controller that made it possible to try controller ideas easier in python script. Should I make a PR for that?

difficuilty encounter during compiling

Hello,
first thank you to share the software!

i will love to test the simulation but i can't compile the software for a problem of include...
also i made an autoconfig and run script but i got error can you please help me ?

the autoconfiginstall.sh

https://github.com/STRATOS-ROBOTICS/LeopardMK1/blob/master/LeopardMK1SoftwareSimInstall.sh

and the error log
https://github.com/STRATOS-ROBOTICS/LeopardMK1/blob/master/errorlog.txt

i test on two different computers ubuntu 18.04 lts but always the same error...eigen/ not find...
i think it is a problem of a path in cmake or something but i am not a good one in c++ but i wanna learn how to ...
thank you in advance

Difference between jcqp and qpoases?

Hi, there
I noticed that recent commit can use jcqp as the QP slover to replace qpoases, so my question is: Is jcqp more faster than qpoases? Or other reason?
Thanks in advance!

Problem of MPC's expected trajectory

Hello, everyone,
In the file“ ConvexMPCLocomotion.cpp "We can find this code:
float trajInitial[12] = {(float)rpy_ comp[0],
(float)rpy_ comp[1], // 1
...
In the paper "dynamic locomotion in the MIT chetah 3 through converse model predictive control", they set the expected pitch and roll to 0, but what is "rpy_ comp" here?

What do they mean by the "Integral-esque pitche and roll compensation" method they use?

Overall Software Usage - Request

Hi, this is more of a request than a bug/problem. I want to make sure that I understand the use case for Cheetah-Software. I've installed it, and by using closed bugs and some experimentation, I think I have it running (for some value of run).

This is using MIT_Controller (mini cheetah and simulator)

  1. Is there a list of allowed control modes and their legal transitions, or is this a "read the code"?
  2. When running, if I transition to 4 (trot), I end up with a light blue screen and no robot. Sitting (0) and standing (1) seem fine. Is there a setting I'm missing?
  3. Is there a cheat sheet on what the game controller should do, and when you can/should use it?
  4. Is there an "output" of running the simulation? Some type of data (not sure what it would be)? Our goal is to change values and see what changes. Other than watching the screen, is there another way to capture this?

Thanks for your time!

Opportunity to purchase / collaborate on Cheetah Mini

Hi,

I'm a maintainer in the ROS ecosystem (Navigation2, SLAM Toolbox, Perception PCL, Robot Localization, and the like around mobile/field robotics) and I'm very interested in working with a quadruped from a practical standpoint and getting wider adoption or use of them. Something in particular I'm interested in is writing ROS2 drivers for the Cheetah Mini / Stanford Pupper and integrating them into the next generation ROS2 Navigation stack which aims to support a larger class of robot and maturity in framework (first preliminary work can be seen here).

I've seen some videos with a number of Cheetah Mini's running around and I was curious to learn if these are available for research / use / sale / what the plans are on this front. I'd love to make this my default development platform for navigation algorithms and make awesome product-grade demos. I, myself, am not interested in using it as a commercial product, but I do create high-quality open-source software and support which can be used in them. (I currently work for Samsung Research doing solely Open Source Robotics work that often borders research).

If there's an opportunity to collaborate, that would be stellar. I think there are some really cool things this work can be used to build on top of and get them out in the real-world.

Thanks,
S

Enabled multicast for multiple interface , the error pops up

if multicast is enabled in multiple interfaces (loopback and one ethernet interface)of my laptop, the error pops up.
"[RobotInterface] Failed to send parameter cheater_mode (iter 0 timed out), trying again...
set cheater_mode to 0 (0)"

If I switch off the multicast for loopback interface, the error is gone. But the multicast for loopback should be on for my laptop. How should I fix that?

SharedMemoryObject::attach shm_open(development-simulator) failed: No such file or directory terminate called after throwing an instance of 'std::runtime_error' what(): Failed to create shared memory! Aborted (core dumped)

SharedMemoryObject::attach shm_open(development-simulator) failed: No such file or directory terminate called after throwing an instance of 'std::runtime_error' what(): Failed to create shared memory! Aborted (core dumped)

Solved: need to click start the mini cheetah in the sim screen then the error will disappear

Simulation Error

Hi,
I updated the code on October 14th, successfully compiled,and when I ran the simulation on user computer,there are some mistakes.

my code:
    $ ./sim/sim
    $ ./user/MIT_Controller/mit_ctrl m s

Error:
    " Simulation Error
      Control code has an error:
      Control parameter testValue wasn't found in parameter collection user-parameters"

Running a test program has one that always fails
$ ./common/test-common
[ FAILED ] LegController.FwdKinematicsLegSign

Is it something I did wrong or missed some important steps?

problems in compiling

43%] Built target soem
[ 43%] Linking C shared library out/libosqp.so
[ 44%] Linking C shared library out/libosqp.so
[ 44%] Built target osqpstatic
[ 44%] Built target osqp
Scanning dependencies of target osqp_demo
[ 45%] Building C object third-party/osqp/CMakeFiles/osqp_demo.dir/examples/osqp_demo.c.o
[ 45%] Linking C executable out/osqp_demo
[ 45%] Built target osqp_demo
In file included from /home/zj/文档/Cheetah-Software-master/mc-build/googletest-src/googletest/src/gtest-all.cc:46:0:
/home/zj/文档/Cheetah-Software-master/mc-build/googletest-src/googletest/src/gtest-printers.cc: In function ‘void testing::internal::PrintTo(char32_t, std::ostream*)’:
/home/zj/文档/Cheetah-Software-master/mc-build/googletest-src/googletest/src/gtest-printers.cc:256:10: error: passing ‘char32_t’ chooses ‘unsigned int’ over ‘int’ [-Werror=sign-promo]
<< c;
^
/home/zj/文档/Cheetah-Software-master/mc-build/googletest-src/googletest/src/gtest-printers.cc:256:10: error: in call to ‘std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT = char; _Traits = std::char_traits; std::basic_ostream<_CharT, _Traits>::__ostream_type = std::basic_ostream]’ [-Werror=sign-promo]
[ 45%] Linking CXX shared library libinih.so
[ 45%] Linking C shared library liblibvnc.so
[ 45%] Built target libvnc
[ 45%] Built target inih
[ 45%] Linking CXX shared library liblord_imu.so
[ 45%] Built target lord_imu
Scanning dependencies of target test_imu
[ 45%] Building CXX object third-party/lord_imu/CMakeFiles/test_imu.dir/test/lord_test.cpp.o
[ 45%] Linking CXX shared library libGoldfarb_Optimizer.so
[ 45%] Built target Goldfarb_Optimizer
Scanning dependencies of target WBIC
[ 45%] Building CXX object user/MIT_Controller/Controllers/WBC/WBIC/CMakeFiles/WBIC.dir/WBIC.cpp.o
[ 46%] Building CXX object user/MIT_Controller/Controllers/WBC/WBIC/CMakeFiles/WBIC.dir/KinWBC.cpp.o
[ 46%] Linking CXX shared library libdynacore_yaml-cpp.so
[ 46%] Built target dynacore_yaml-cpp
Scanning dependencies of target dynacore_param_handler
[ 46%] Building CXX object third-party/ParamHandler/CMakeFiles/dynacore_param_handler.dir/ParamHandler.cpp.o
[ 47%] Linking CXX executable test_imu
[ 47%] Built target test_imu
[ 47%] Linking CXX shared library libs/libqpOASES.so
[ 47%] Built target qpOASES
[ 48%] Linking CXX shared library libdynacore_param_handler.so
[ 48%] Built target dynacore_param_handler
cc1plus: all warnings being treated as errors
googletest-build/googletest/CMakeFiles/gtest.dir/build.make:62: recipe for target 'googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o' failed
make[2]: *** [googletest-build/googletest/CMakeFiles/gtest.dir/src/gtest-all.cc.o] Error 1
CMakeFiles/Makefile2:2461: recipe for target 'googletest-build/googletest/CMakeFiles/gtest.dir/all' failed
make[1]: *** [googletest-build/googletest/CMakeFiles/gtest.dir/all] Error 2
make[1]: *** 正在等待未完成的任务....
[ 48%] Linking CXX shared library libWBIC.so
[ 48%] Built target WBIC
[ 49%] Linking CXX shared library libJCQP.so
[ 49%] Built target JCQP
Makefile:129: recipe for target 'all' failed
make: *** [all] Error [2]
when I Build as mini cheetah executable, i'll meet these problems.

Can't get locomotion state to work in MIT_Controller

Hello,

I am using the MIT_Controller along with the simulator for mini cheetah.
I am trying to control the robot with a gamepad. Although I am not using the Logitech one, I debugged pretty much everything and the gamepad is detected successfully and all the buttons and axes work fine, so it shouldn't play any part in the problem below.

Issue
I start the simulator, set use_rc to 0, set control_mode to 1, and the robot stands up. Then I set the control_mode to 4 and the simulation shows the sky (the robot disappears). After some debugging I traced back the issue as far as I could and I figured out that there are nan values.

The nan's appear in ConvexMPCLocomotion.cpp:
In line 107: auto& seResult = data._stateEstimator->getResult();
seResult.position is (nan, nan, nan), which in turn makes pFoot[i] in line 206 (nan, nan, nan), and so on...

I am wondering if I am missing something in the way I perform my test, or if this is due to something broken due to a library update.

Update
Everything works fine if I have cheater_mode to 1. Any thoughts on that?

Thanks,
Christos Christou.

stropts.h : No such file or directory

Hi, I have a problem during installation with "make -j" .
At 78% I have this error " stropts.h : No such file or directory" with sim/CMakerFiles/sim.dir/include/moc_JoystickTest.cpp.o
After that , the last message is "waiting for finished jobs ..." and my computer crash.

Computer : MSI gl62mvr 7rfx
Linux : Ubuntu 20.04 ( with acpi=off during installation)

Cannot run simulator

Hi guys,

I'm trying to run simulator and I'm getting this error. Please see detailed screenshots. Any ideas what's wrong?

Thanks,
Mike.

1 - simulator started

2 - simulator window

3 - controller

4 - error

5 - simulator failure

License?

Thanks for this software!
Can you provide a license file for this repository? Do you use the MIT license for this simulator?

[ERROR] Hardware bridge: we've missed 7 requests

Sometimes when I running the controller on the UP board and the sim on a laptop, UP board looks like it can receive part of messages, but some missed. A figure is as follows.
Note: I have ruined this system successfully in another network environment.
Screenshot from 2019-10-13 23-48-09

difficuilty encounter during compiling

Hi,

I am following the compiling steps but I got some problems.

The output of "camke .." in Cheetah-Software/build is (partly):
"
runtime library [libQt5Widgets.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/shupeng/Qt5.12.4/5.12.4/gcc_64/lib
runtime library [libQt5Gui.so.5] in /usr/lib/x86_64-linux-gnu may be hidden by files in:
/home/shupeng/Qt5.12.4/5.12.4/gcc_64/lib
Some of these libraries may not be found correctly.
"
And the output of "./scripts/make_types.sh" : (partly)
"
rm: cannot remove '/.class': No such file or directory
rm: cannot remove '/.pyc': No such file or directory
Notice: enclosing LCM types without package into java namespace 'lcmtypes'.
cp: cannot stat '/usr/local/share/java/lcm.jar': No such file or directory

"
And the make process is terminated after 76%..

I followed all the instruction and installed all the required packages..

Compilation terminated ?

Hi , I try to compile these code. But I met

/Cheetah-Software/common/../lcm-types/cpp: No such file or directory [-Werror=missing-include-dirs] cc1plus: all warnings being treated as errors

I made a directory named cpp under ../lcm-types and it works. When it went on compiling, I met another error:

/Cheetah-Software/common/include/SimUtilities/GamepadCommand.h:10:28: fatal error: gamepad_lcmt.hpp: No such file or directory compilation terminated.

It seems that a file named gamepad_lcmt.hpp is lost. I didn't find it. Could you please tell me how to solve this problem? Thanks !

Keyboard control in sim? What hardware/software gamepad to use with sim?

Hello!
I am able to simulate the robots in sim after running

./sim/sim 

and using one of the controllers eg:

./user/WBC_Controller/wbc_ctrl m s

I can get the mini cheetah to the prone position after turning off the use_rc boolean, and it immediately performs a backflip, which is quite neat.

However, I can't get the robot to stand up/walk around. It seems like having the gamepad controls is necessary. Is there a keyboard based control? If not, what is the hardware used for sending commands?

Thanks!

run_mc.sh

configure libraries

sudo LD_LIBRARY_PATH=. ldconfig
#sudo LD_LIBRARY_PATH=. ldd ./robot
sudo LD_LIBRARY_PATH=. $1 m r

how to finish run_mc.sh,and how to run it ?

QT lib path not found even given lib path

Hi!
When I am building the whole project, I found that the make programme can not find the QTlib even I have given the right path:
/home/idroid/Desktop/clion-2020.1.1/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH=/home/idroid/Qt/Tools/QtCreator/lib/Qt/lib -G "CodeBlocks - Unix Makefiles" /home/idroid/Desktop/Cheetah-Software

**** Mini-Cheetah build disabled ****
-- We are on a Linux system
-- Embedded is OFF
-- Printing is ON
-- Profiling is ON
-- User interrupt is ON
-- Floats are OFF
-- Long integers (64bit) are ON
-- Code coverage is OFF
-- MKL Pardiso: ON
-- Floats are OFF
-- Long integers (64bit) are ON
CMake Error at sim/CMakeLists.txt:19 (find_package):
Could not find a package configuration file provided by "Qt5Core" with any
of the following names:

Qt5CoreConfig.cmake
qt5core-config.cmake

Add the installation prefix of "Qt5Core" to CMAKE_PREFIX_PATH or set
"Qt5Core_DIR" to a directory containing one of the above files. If
"Qt5Core" provides a separate development package or SDK, be sure it has
been installed.

I have use the CMAKE_PREFIX_PATH and I also have tried add
SET(Qt5Core_DIR "/home/idroid/Qt/Tools/QtCreator/lib") in CMAKELists.txt but still get the same error, why?
Please help, thank you!
Yujian BAO

My external LCM message is blocked

I tried to send the LCM message from another program in the local computer. But Cheetah-Software does not read my LCM message. Is there any trick to unblock this restriction

have some problem when build on TI-am572x

Hi everyone, I see that the document says that it supports embedded devices, so I plan to transplant to TI's AM5728-evm, and then I made the following changes.

First, I blocked sim (QT) and then manually compiled the lcm library.
Second, I started to compile the problems encountered, I adopted the method of shielding
`
mkdir build

cd build

cmake -DMINI_CHEETAH_BUILD=TRUE -DEMBEDDED=TRUE ..

./../scripts/make_types.sh

make -j2
`

cmake error:
/nfsboot/mini_demo_x7/third-party/casadi/CMakeLists.txt
if(FORTRAN_REQUIRED)
#enable_language(Fortran)
#set(Fortran_language_works ON)

if(WITH_IPOPT)
#find_package(IPOPT REQUIRED)
endif()

build error:
Scanning dependencies of target casadi_rootfinder_kinsol
/usr/lib/gcc/arm-linux-gnueabi/7.2.1/../../../../arm-linux-gnueabi/bin/ld: ../../../lib/libcasadi_sundials.a(nvector_serial.c.o): relocation R_ARM_MOVW_ABS_NC against `N_VClone_Serial' can not be used when making a shared object; recompile with -fPIC
../../../lib/libcasadi_sundials.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [third-party/casadi/casadi/interfaces/sundials/CMakeFiles/casadi_sundials_common.dir/build.make:97: third-party/casadi/lib/libcasadi_sundials_common.so.3.5] Error 1
make[1]: *** [CMakeFiles/Makefile2:2922: third-party/casadi/casadi/interfaces/sundials/CMakeFiles/casadi_sundials_common.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 65%] Building CXX object third-party/casadi/casadi/interfaces/sundials/CMakeFiles/casadi_rootfinder_kinsol.dir/kinsol_interface_meta.cpp.o
[ 65%] Building CXX object third-party/casadi/casadi/interfaces/sundials/CMakeFiles/casadi_rootfinder_kinsol.dir/kinsol_interface.cpp.o

[ 66%] Linking CXX shared library ../../../lib/libcasadi_rootfinder_kinsol.so
/usr/lib/gcc/arm-linux-gnueabi/7.2.1/../../../../arm-linux-gnueabi/bin/ld: ../../../lib/libcasadi_sundials.a(nvector_serial.c.o): relocation R_ARM_MOVW_ABS_NC against N_VClone_Serial' can not be used when making a shared object; recompile with -fPIC ../../../lib/libcasadi_sundials.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[2]: *** [third-party/casadi/casadi/interfaces/sundials/CMakeFiles/casadi_rootfinder_kinsol.dir/build.make:123: third-party/casadi/lib/libcasadi_rootfinder_kinsol.so.3.5] Error 1 make[1]: *** [CMakeFiles/Makefile2:2960: third-party/casadi/casadi/interfaces/sundials/CMakeFiles/casadi_rootfinder_kinsol.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 root@am57xx-evm:/nfsboot/mini_demo_x7/build# /usr/lib/gcc/arm-linux-gnueabi/7.2.1/../../../../arm-linux-gnueabi/bin/ld: ../../../lib/libcasadi_sundials.a(nvector_serial.c.o): relocation R_ARM_MOVW_ABS_NC against N_VClone_Serial' can not be used when making a shared object; recompile with -fPIC
-sh: syntax error near unexpected token `('

if(WITH_SUNDIALS)
#add_subdirectory(sundials)
endif()

if(WITH_CSPARSE)
#add_subdirectory(csparse)
endif()

if(WITH_TINYXML)
#add_subdirectory(tinyxml)
endif()

build error: could not found <immintrin.h>
/nfsboot/mini_demo_x7/third-party/JCQP/CholeskySparseSolver.cpp
// #include <immintrin.h>

/nfsboot/mini_demo_x7/third-party/JCQP/CholeskyDenseSolver.cpp
// #include <immintrin.h>

Finally stuck when build ‘common/CMakeFiles/biomimetics.dir/src/Dynamics/FloatingBaseModel.cpp.o’ ,did not report an error.Can someone help with the same problem, thank you very much

`
root@am57xx-evm:/nfsboot/mini_demo_x7/build# make -j2
[ 3%] Built target JCQP

[ 8%] Built target dynacore_yaml-cpp
[ 8%] Built target inih
[ 8%] Built target qdldlobject
[ 8%] Built target linsys_qdldl
[ 9%] Built target imu
[ 11%] Built target lord_imu
[ 13%] Built target soem
[ 14%] Built target serial
[ 14%] Built target Goldfarb_Optimizer
[ 18%] Built target libvnc
[ 20%] Built target qdldl
[ 20%] Built target osqpstatic
[ 20%] Built target qdldlstatic
[ 23%] Built target qpOASES
[ 25%] Built target test_imu
[ 28%] Built target yaml-cpp
[ 28%] Built target casadi_tinyxml
[ 37%] Built target casadi_csparse
[ 46%] Built target casadi_sundials
[ 46%] Built target serial_example
[ 47%] Built target gtest
[ 47%] Built target WBIC
[ 47%] Built target dynacore_param_handler
[ 48%] Built target osqp
[ 58%] Built target qdldl_example
[ 63%] Built target casadi
[ 64%] Built target yaml-cpp-parse
[ 64%] Built target yaml-cpp-read
[ 65%] Built target yaml-cpp-sandbox
[ 65%] Built target casadi_rootfinder_fast_newton
[ 66%] Built target casadi_interpolant_linear
[ 66%] Built target casadi_integrator_collocation
[ 67%] Built target casadi_importer_shell
[ 68%] Built target casadi_rootfinder_newton
[ 69%] Built target casadi_conic_nlpsol
[ 69%] Built target casadi_nlpsol_scpgen
[ 70%] Built target casadi_linsol_lsqr
[ 71%] Built target casadi_integrator_rk
[ 71%] Built target casadi_conic_qrqp
[ 71%] Built target casadi_rootfinder_nlpsol
[ 71%] Built target casadi_interpolant_bspline
[ 72%] Built target casadi_nlpsol_sqpmethod
[ 73%] Built target casadi_linsol_symbolicqr
[ 73%] Built target casadi_linsol_qr
[ 73%] Built target casadi_linsol_ldl
[ 73%] Built target gmock
[ 73%] Built target gtest_main
[ 73%] Built target libs
[ 73%] Built target gmock_main
[ 73%] Building CXX object common/CMakeFiles/biomimetics.dir/src/Dynamics/FloatingBaseModel.cpp.o
`

Virtual Overloaded Problem about qpoases in balance control

Happy new year.
I am trying to write my own controller, but when I intend to include the header files that are related to BalanceController and qpoases, I encounter virtual overloaded problems which happen in the third- party codes instead of mine. Like this,
1

I could add the "-Wno-overloaded-virtual" flag to the Cmakelist, and the whole building progress ran smoothly. But when I activated the simulation and my own controller, the simulation crashed with segfault.
image

Did you guys meet the same problem when writing the codes about balance standing or trotting? If so, how did you solve it?

Available Online Actuators

Hi,

I couple of in-depth searches looking for adequate actuators for a Cheetah Mini-like (or Cheetah Mini-copy?) yields this and this.

I was curious if you had experiences with these or could comment on them. I have to assume they're just knock-offs from online documentation but I also wasn't sure if you were in the process of mass producing them enough that one of these vendors is actually legitimate. I've seen a variety of interest around online with these actuators and I'm sure it would help all of us looking at this from the outside if any of these are actually good starts (or the actual actuators you're using) vs. things that could make us all waste a bunch of time.

Error opening /dev/ttyUSB0: No such file or directory

Hi,

First I want to thank you for having all this code/software open source!

I believe I have compiled and installed the software correctly. However, I'm having issues running the simulation with the MIT controller.

When I run:

user/MIT_Controller/mit_ctrl m s

I get the following error

[run_sbus] starting...
Error opening /dev/ttyUSB0: No such file or directory
ESTOP!
ESTOP!
ESTOP!

Is the opening of the /dev/ttyUSB0 has to do with the Logitech F310 gamepad? I am trying to use a Logitech F710 instead.

Thank you,

What is x_drag in A matrix,and how did you build coordinates?

Hi guys,I was reading your code and noticed there is a variable named x_drag in "ct_ss_mats" function.I'm quite confused for your paper about minicheetah didn't include this variable, and it seems just doesn't make sense if your A matrix of MPC function including this one.

Moreover, the mini_abad and mini_upper_link models used in simulation for mini cheetah are different form your actual mechanical structures, so is minicheetah.h file are coded based on these old-version models or I can neglect it? What shoud I do if I want to reedit minicheetah.h for my own model, and how you guys built these complicated coordinates?

Could you please give me a favour to get these questions down, I'd appreciate it a lot!

Problem in running robot code

Hi,
I can successfully run the simulator on user computer. Now I want to run robot code on upboard(I don't have a mini_cheetah still now).
I followed "running_mini_cheetah.md" for each step and made some modifications to adapt to my network adapter. Some of my steps as follows:
run ../scripts/config_network_lcm.sh user
run ../scripts/send_to_mini_cheetah.sh user/MIT_Controller/mit_ctrl after make
ssh in upboard
cd robot-software/
./config_network_lcm.sh upboard
cd bulid/

if I run ./run_mc.sh ./mit_ctrl, there will be an error as ./mit_ctrl: error while loading shared libraries: liblcm.so.1: cannot open shared object file: No such file or directory
if I run sudo nohup ./run_mc.sh ./mit_ctrl, then nohup: ignoring input and appending output to 'nohup.out'
I don't know whether the robot code start running successfully. I also run ./sim/sim in mc_build folder on user computer and choose Mini Cheetah and Robot to start, and some output as follows:
[GameController] Found 1 joystick
[SIM GRAPHICS] New graphics window.
[Graphics3D] Initialize OpenGL...
[SimControlPanel] Init Robot Interface...
[RobotInterface] Load parameters...
[RobotInterface] Init LCM
[RobotInterface] Init graphics
draw list has 13 items
LCM self test failed!!
Check your routing tables and firewall settings
LCM self test failed!!
Check your routing tables and firewall settings
[RobotInterface] Init dynamics
[RobotInterface] Send parameters to robot...
[PeriodicTask] Start robot-interface (0 s, 16666667 ns)
set cheater_mode to 0 (0)
[RobotInterface] Failed to send parameter cheater_mode (iter 0 timed out), trying again...
......

Is it something I did wrong or missed some important steps?

Problems about joystick

Joystick is tested to be normal in a terminal, but it returns no data while running the simulation of mini cheetah.

Question in the PositionVelocityEstimator.cpp file

Hi,

I'm trying to understand this state estimation file, however, I have some difficulties in line 123 ~ 149.
What I learned so far, vs is the velocity of the foot reltive to the body and pzs is the contact height of each foot, however, there is a term trust in the equations at line 148 ~ 149:

    _vs.segment(i1, 3) = (1.0f - trust) * v0 + trust * (-dp_f);
    pzs(i) = (1.0f - trust) * (p0(2) + p_f(2));

I am not sure about the definatoin of trust in line 123 ~ 132. How does it relate with vs and pzs?

    T trust = T(1);
    T phase = fmin(this->_stateEstimatorData.result->contactEstimate(i), T(1));
    //T trust_window = T(0.25);
    T trust_window = T(0.2);

    if (phase < trust_window) {
      trust = phase / trust_window;
    } else if (phase > (T(1) - trust_window)) {
      trust = (T(1) - phase) / trust_window;
    }

And also, what is the character of high_suspect_number in the equations of Q and R matrices?

    Q.block(qindex, qindex, 3, 3) =
        (T(1) + (T(1) - trust) * high_suspect_number) * Q.block(qindex, qindex, 3, 3);
    R.block(rindex1, rindex1, 3, 3) = 1 * R.block(rindex1, rindex1, 3, 3);
    R.block(rindex2, rindex2, 3, 3) =
        (T(1) + (T(1) - trust) * high_suspect_number) * R.block(rindex2, rindex2, 3, 3);
    R(rindex3, rindex3) =
        (T(1) + (T(1) - trust) * high_suspect_number) * R(rindex3, rindex3);

what about JCQP?

What is the third-party library JCQP used for? is it used with qpoases. I can not foud the JCQP throuth the internet. how can i get it . if I want to use the osqp instead qpoases,how can i do ?
i found you use the osqpeigen. but you do not install in the third party ? how can i install in the third party. i tried install but it not work. how can i install osqpeigen.

Running Cheetah under program control

Hello, we'd like to understand how Cheetah's design parameters affect its performance e.g., maximum running speed. Parameters we might want to alter are in mc-mit-ctrl-user-parameters.yaml.

Would appreciate knowing how to do this under program control, not via an external joystick. We can modify the parameters in the file, but how do we run the simulated robot without a joystick. Even if we can do this with a mouse that would help.

We do not have a physical robot and would like to do this purely with simulation.

We have been able to build the software at our end.

Thanks very much.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.