今天启动狗简单玩了一下,感慨设备的先进,也感慨仿生类机器人还有很长的路要走。主要完成操作——固件更新、连接电脑、用手机完成各种动作操作、用app内的3d激光建图模式建图,并导航。写点东西记录下实验步骤以及可能遇到的问题以便后续自己操作。
宇树科技 文档中心(传送门)
SDK获取安装及例程运行
官方Go2 SDK 开发指南详细操作部分不再赘述。仅作步骤和问题记录。
安装编译
1.下载sdk
2.安装unitree_sdk2(目前叫unitree_sdk2-main)
3.编译例程
4.查看是否编译成功
配置网络环境
1.网线连接狗(狗开机)
2.将本机USB Ethernet 地址设置为与机器狗同一网段,如192.168.123.222。
3.测试连接是否成功。终端输入:ping 192.168.123.161。
4.查看123网段对应的网卡名字。终端输入:ifconfig。
例程运行
1.关闭运控sport_mode(本人手机操作)
2.运行例程
打开终端输入(网卡名换成自己的)
cd ~/unitree_sdk2/build/bin
sudo ./low_level enxf8e43b808e06
该例程会使 Go2 机器人腿部摆动,为了保护机器人,在运行此例程前应使机器人四腿悬空。
go2_stand_example例程即为趴下站起来。(宇树文档内的stand_example_go2就是这个)
终端输入代码如下即可运行。(注意网卡名字)
cd ~/unitree_sdk2/build/bin
sudo ./stand_example_go2 enxf8e43b808e06
创建客户应用
1.查阅 sport_client 接口
在这个位置unitree_sdk2/include/unitree/robot/go2/sport/sport_client.hpp
(文件夹如果被锁住那就打开终端输入
sudo chmod 777 user)
#ifndef __UT_ROBOT_GO2_SPORT_CLIENT_HPP__
#define __UT_ROBOT_GO2_SPORT_CLIENT_HPP__
#include <unitree/robot/client/client.hpp>
namespace unitree
{
namespace robot
{
namespace go2
{
/*
* PathPoint
*/
struct stPathPoint
{
float timeFromStart;
float x;
float y;
float yaw;
float vx;
float vy;
float vyaw;
};
typedef struct stPathPoint PathPoint;
/*
* SportClient
*/
class SportClient : public Client
{
public:
explicit SportClient(bool enableLease = false);
~SportClient();
void Init();
/*
* @brief Damp
* @api: 1001
*/
int32_t Damp();
/*
* @brief BalanceStand
* @api: 1002
*/
int32_t BalanceStand();
/*
* @brief StopMove
* @api: 1003
*/
int32_t StopMove();
/*
* @brief StandUp
* @api: 1004
*/
int32_t StandUp();
/*
* @brief StandDown
* @api: 1005
*/
int32_t StandDown();
/*
* @brief RecoveryStand
* @api: 1006
*/
int32_t RecoveryStand();
/*
* @brief Euler
* @api: 1007
*/
int32_t Euler(float roll, float pitch, float yaw);
/*
* @brief Move
* @api: 1008
*/
int32_t Move(float vx, float vy, float vyaw);
/*
* @brief Sit
* @api: 1009
*/
int32_t Sit();
/*
* @brief RiseSit
* @api: 1010
*/
int32_t RiseSit();
/*
* @brief SwitchGait
* @api: 1011
*/
int32_t SwitchGait(int d);
/*
* @brief Trigger
* @api: 1012
*/
int32_t Trigger();
/*
* @brief BodyHeight
* @api: 1013
*/
int32_t BodyHeight(float height);
/*
* @brief FootRaiseHeight
* @api: 1014
*/
int32_t FootRaiseHeight(float height);
/*
* @brief SpeedLevel
* @api: 1015
*/
int32_t SpeedLevel(int level);
/*
* @brief Hello
* @api: 1016
*/
int32_t Hello();
/*
* @brief Stretch
* @api: 1017
*/
int32_t Stretch();
/*
* @brief TrajectoryFollow
* @api: 1018
*/
int32_t TrajectoryFollow(std::vector<PathPoint>& path);
// /*
// * @brief GetBodyHeight
// * @api: 1024
// */
// int32_t GetBodyHeight();
// /*
// * @brief GetFootRaiseHeight
// * @api: 1025
// */
// int32_t GetFootRaiseHeight(float& height);
// /*
// * @brief GetSpeedLevel
// * @api: 1026
// */
// int32_t GetSpeedLevel(int&);
/*
* @brief SwitchJoystick
* @api: 1027
*/
int32_t SwitchJoystick(bool flag);
/*
* @brief ContinuousGait
* @api: 1019
*/
int32_t ContinuousGait(bool flag);
/*
* @brief Wallow
* @api: 1021
*/
int32_t Wallow();
// /*
// * @brief Content
// * @api: 1020
// */
// int32_t Content();
/*
* @brief Heart
* @api: 1036
*/
int32_t Heart();
/*
* @brief Pose
* @api: 1028
*/
int32_t Pose(bool flag);
/*
* @brief Scrape
* @api: 1029
*/
int32_t Scrape();
/*
* @brief FrontFlip
* @api: 1030
*/
int32_t FrontFlip();
/*
* @brief FrontJump
* @api: 1031
*/
int32_t FrontJump();
/*
* @brief FrontPounce
* @api: 1032
*/
int32_t FrontPounce();
/*
* @brief Dance1
* @api: 1022
*/
int32_t Dance1();
/*
* @brief Dance2
* @api: 1023
*/
int32_t Dance2();
/*
* @brief Dance3
* @api: 1037
*/
int32_t Dance3();
/*
* @brief Dance4
* @api: 1038
*/
int32_t Dance4();
/*
* @brief HopSpinLeft
* @api: 1039
*/
int32_t HopSpinLeft();
/*
* @brief HopSpinRight
* @api: 1040
*/
int32_t HopSpinRight();
/*
* @brief WiggleHips
* @api: 1033
*/
int32_t WiggleHips();
/*
* @brief GetState
* @api: 1034
*/
int32_t GetState(const std::vector<std::string>& _vector, std::map<std::string, std::string>& _map);
/*
* @brief EconomicGait
* @api: 1035
*/
int32_t EconomicGait(bool flag);
};
}
}
}
#endif//__UT_ROBOT_GO2_SPORT_CLIENT_HPP__
2.创建应用文件
3.编译文件
4.运行
最最基本的第一部分操作流程就写到这里吧。后续还会更新。