Skip to content

Commit cce4472

Browse files
committed
Merge branch 'feature/offset_tuning' into develop
2 parents 3a9261c + 9714a46 commit cce4472

File tree

267 files changed

+34990
-3863
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

267 files changed

+34990
-3863
lines changed

.rosinstall

Lines changed: 47 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,48 @@
11
- git:
2-
local-name: gazebo_dc_motor
3-
uri: [email protected]:nyxrobotics/gazebo_dc_motor.git
4-
version: develop
5-
- git:
6-
local-name: robotis/robotis_math
7-
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Math.git
8-
version: master
9-
- git:
10-
local-name: robotis/robotis_framework
11-
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Framework.git
12-
version: master
13-
- git:
14-
local-name: robotis/robotis_controller_msgs
15-
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Framework-msgs.git
16-
version: master
17-
- git:
18-
local-name: robotis/robotis_op3_tools
19-
uri: [email protected]:sbgisen/ROBOTIS-OP3-Tools.git
20-
version: feature/noetic
21-
- git:
22-
local-name: robotis/robotis_op3_msgs
23-
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-OP3-msgs.git
24-
version: master
25-
- git:
26-
local-name: robotis/robotis_op3
27-
uri: [email protected]:sbgisen/ROBOTIS-OP3.git
28-
version: feature/noetic
29-
- git:
30-
local-name: robotis/humanoid_navigation
31-
uri: [email protected]:sbgisen/humanoid_navigation.git
32-
version: feature/noetic
33-
- git:
34-
local-name: robotis/humanoid_msgs
35-
uri: [email protected]:ahornung/humanoid_msgs.git
36-
version: master
37-
- git:
38-
local-name: fdilink_ahrs
39-
uri: [email protected]:sbgisen/fdilink_ahrs.git
40-
version: master
41-
- git:
42-
local-name: yolov8
43-
uri: [email protected]:sbgisen/yolov8.git
44-
version: develop
45-
2+
local-name: gazebo_dc_motor
3+
uri: [email protected]:nyxrobotics/gazebo_dc_motor.git
4+
version: develop
5+
- git:
6+
local-name: robotis/robotis_math
7+
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Math.git
8+
version: master
9+
- git:
10+
local-name: robotis/robotis_framework
11+
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Framework.git
12+
version: master
13+
- git:
14+
local-name: robotis/robotis_controller_msgs
15+
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Framework-msgs.git
16+
version: master
17+
- git:
18+
local-name: robotis/robotis_op3_tools
19+
uri: [email protected]:sbgisen/ROBOTIS-OP3-Tools.git
20+
version: feature/noetic
21+
- git:
22+
local-name: robotis/robotis_op3_msgs
23+
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-OP3-msgs.git
24+
version: master
25+
- git:
26+
local-name: robotis/robotis_op3
27+
uri: [email protected]:sbgisen/ROBOTIS-OP3.git
28+
version: feature/noetic
29+
- git:
30+
local-name: robotis/robotis_optimization
31+
uri: [email protected]:ROBOTIS-GIT/ROBOTIS-Optimization.git
32+
version: master
33+
- git:
34+
local-name: robotis/humanoid_navigation
35+
uri: [email protected]:sbgisen/humanoid_navigation.git
36+
version: feature/noetic
37+
- git:
38+
local-name: robotis/humanoid_msgs
39+
uri: [email protected]:ahornung/humanoid_msgs.git
40+
version: master
41+
- git:
42+
local-name: fdilink_ahrs
43+
uri: [email protected]:sbgisen/fdilink_ahrs.git
44+
version: master
45+
- git:
46+
local-name: yolov8
47+
uri: [email protected]:sbgisen/yolov8.git
48+
version: develop

README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,23 @@ catkin build
2727
bash ../devel/setup.sh
2828
```
2929

30+
## RoboOne-Auto
31+
```bash
32+
roslaunch kuroko_bringup roboone_startup.launch
33+
```
34+
3035
## Gazebo
3136
```bash
32-
roslaunch kuroko_description roboone_gazebo.launch
37+
roslaunch kuroko_bringup kuroko_bringup_gazebo.launch
38+
roslaunch kuroko_bringup manager.launch
39+
```
40+
41+
- RonoOne
42+
```bash
43+
roslaunch kuroko_roboone roboone_auto.launch
44+
```
45+
46+
- Walking GUI
47+
```bash
48+
roslaunch kuroko_walking_gui kuroko_walking_gui.launch
3349
```

install_dependency.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,10 @@ done
3838

3939
rosdep update
4040
rosdep install -r -y -i --from-paths .
41+
42+
## Manually install some apt packages
43+
sudo apt install scilab
44+
4145
catkin source
4246
catkin config --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release
4347
roscd yolov8 && pipenv install

kuroko_action_module/CMakeLists.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ include_directories(
3434
${Boost_INCLUDE_DIRS}
3535
)
3636

37-
add_library(${PROJECT_NAME} src/action_module.cpp src/motion_files.cpp)
37+
add_library(
38+
${PROJECT_NAME}
39+
src/action_module.cpp
40+
src/animation_files.cpp
41+
)
3842
add_dependencies(
3943
${PROJECT_NAME}
4044
${${PROJECT_NAME}_EXPORTED_TARGETS}

kuroko_action_module/config/joint_names.yaml

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#ifndef KUROKO_ACTION_MODULE_H_
22
#define KUROKO_ACTION_MODULE_H_
33

4-
// Check if the C++ standard is 17 or later
54
#if __cplusplus >= 201703L
65
#include <filesystem>
76
namespace fs = std::filesystem;
@@ -16,7 +15,6 @@ namespace fs = std::experimental::filesystem;
1615
#include <string>
1716
#include <vector>
1817
#include <boost/thread.hpp>
19-
#include <fstream>
2018
#include <ros/ros.h>
2119
#include <ros/package.h>
2220
#include <ros/callback_queue.h>
@@ -25,72 +23,74 @@ namespace fs = std::experimental::filesystem;
2523
#include "robotis_controller_msgs/SyncWriteItem.h"
2624
#include "std_msgs/String.h"
2725
#include "std_msgs/Int32.h"
26+
#include "trajectory_msgs/JointTrajectory.h"
2827
#include "op3_action_module_msgs/IsRunning.h"
2928
#include "op3_action_module_msgs/StartAction.h"
30-
#include "motion_files.h"
29+
#include "animation_files.h"
3130

3231
namespace motion_control
3332
{
3433
class ActionModule : public robotis_framework::MotionModule, public robotis_framework::Singleton<ActionModule>
3534
{
3635
public:
3736
ActionModule();
38-
virtual ~ActionModule();
37+
~ActionModule() override;
3938

39+
// ROS Framework Functions
4040
void initialize(const int control_cycle_msec, robotis_framework::Robot* robot) override;
4141
void process(std::map<std::string, robotis_framework::Dynamixel*> dxls,
4242
std::map<std::string, double> sensors) override;
4343

44-
void saveAllMotions(const std::string& directory);
45-
void loadAllMotions(const std::string& directory);
44+
void stop() override;
45+
bool isRunning() override;
4646

47-
bool playMotionByName(const std::string& motion_name);
48-
void brake();
4947
void onModuleEnable() override;
5048
void onModuleDisable() override;
51-
bool isRunning() override;
52-
void stop() override;
53-
std::vector<std::string> getMotionNames();
54-
void torqueOnAll();
55-
void torqueOffAll();
5649

5750
private:
51+
std::string current_animation_name_;
52+
int current_block_id_;
53+
double time_in_frame_ = 0.0;
54+
bool is_running_ = false;
55+
5856
boost::thread queue_thread_;
5957
ros::Publisher status_msg_pub_;
6058
ros::Publisher done_msg_pub_;
6159
ros::Publisher sync_write_pub_;
6260

6361
int control_cycle_msec_;
64-
65-
bool start_playing_requested_;
66-
bool stop_playing_requested_;
67-
bool action_module_enabled_;
68-
bool send_next_frame_;
69-
70-
MotionFiles motion_files_;
71-
MotionStatus motion_status_;
62+
bool action_module_initialized_;
63+
trajectory_msgs::JointTrajectory current_trajectory_;
64+
size_t trajectory_index_ = 0;
65+
ros::Time trajectory_start_time_;
66+
bool start_playing_requested_ = false;
67+
bool stop_playing_requested_ = false;
7268

7369
std::map<std::string, int> joint_name_to_dxl_id_;
7470
std::map<int, std::string> dxl_id_to_joint_name_;
75-
std::map<std::string, robotis_framework::DynamixelState*> action_result_;
7671
std::map<std::string, bool> action_joints_enable_;
72+
std::vector<std::string> animation_joint_names_;
7773

78-
void queueThread();
79-
void publishStatusMsg(unsigned int type, std::string msg);
80-
void publishDoneMsg(std::string msg);
74+
animation_system::Workspace workspace_;
8175

76+
// ROS Topic Callback Functions
8277
bool isRunningServiceCallback(op3_action_module_msgs::IsRunning::Request& req,
8378
op3_action_module_msgs::IsRunning::Response& res);
84-
void motionNumberCallback(const std_msgs::Int32::ConstPtr& msg);
79+
void animationNumberCallback(const std_msgs::Int32::ConstPtr& msg);
8580
void startActionCallback(const op3_action_module_msgs::StartAction::ConstPtr& msg);
86-
void processMotionStep();
8781

88-
void loadConfigJointNames(const std::string& file_name);
89-
void loadMotionYAML(const std::string& file_name, const std::string& motion_name);
90-
91-
std::vector<std::string> config_joint_names_;
82+
// User functions
83+
void queueThread();
84+
void publishStatusMsg(unsigned int type, std::string msg);
85+
void publishDoneMsg(std::string msg);
86+
void getJointNames();
87+
void torqueOnAll();
88+
void torqueOffAll();
89+
trajectory_msgs::JointTrajectory createJointTrajectory(const std::vector<animation_system::FrameData>& frames,
90+
const double control_cycle_msec);
91+
std::vector<animation_system::FrameData> getFrameVector(const animation_system::AnimationData& animation_data);
9292
};
9393

9494
} // namespace motion_control
9595

96-
#endif /* KUROKO_ACTION_MODULE_H_ */
96+
#endif // KUROKO_ACTION_MODULE_H_
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#ifndef ANIMATION_FILES_H_
2+
#define ANIMATION_FILES_H_
3+
4+
#include <string>
5+
#include <vector>
6+
#include <map>
7+
8+
namespace animation_system
9+
{
10+
struct JointData
11+
{
12+
double position = 0.0;
13+
double speed_scale = 1.0;
14+
bool enable = true;
15+
std::vector<double> pid = { 0.0, 0.0, 0.0 };
16+
std::string feedback;
17+
};
18+
19+
struct FrameData
20+
{
21+
double move_duration = 1.0;
22+
double wait_duration = 0.0;
23+
std::map<std::string, JointData> joints; // <joint_name, JointData>
24+
};
25+
26+
struct IfData
27+
{
28+
std::string expression;
29+
std::string condition;
30+
};
31+
32+
struct SwitchData
33+
{
34+
std::string expression;
35+
std::string condition;
36+
std::map<std::string, std::map<std::string, int>> cases;
37+
};
38+
39+
struct AnimationBlock
40+
{
41+
std::string type;
42+
std::string filename;
43+
int id;
44+
std::vector<int> output_ids;
45+
};
46+
47+
class AnimationData
48+
{
49+
public:
50+
std::map<int, AnimationBlock> blocks; // <block_id, AnimationBlock>
51+
FrameData initial_frame_data;
52+
std::map<std::string, FrameData> frames; // <filename, FrameData>
53+
std::map<std::string, IfData> if_conditions; // <filename, IfData>
54+
std::map<std::string, SwitchData> switch_conditions; // <filename, SwitchData>
55+
56+
void setAnimationBlock(const int block_id, const AnimationBlock& block);
57+
void removeAnimationBlock(const int block_id);
58+
AnimationBlock getAnimationBlock(const int block_id) const;
59+
std::vector<int> getBlockIds() const;
60+
61+
void setInitialFrameData(const FrameData& frame);
62+
FrameData getInitialFrameData() const;
63+
64+
void setFrameData(const std::string& filename, const FrameData& frame_data);
65+
void removeFrameData(const std::string& filename);
66+
FrameData getFrameData(const std::string& filename) const;
67+
std::vector<std::string> getFrameFilenames();
68+
69+
void setIfData(const std::string& filename, const IfData& if_data);
70+
void removeIfData(const std::string& filename);
71+
IfData getIfData(const std::string& filename);
72+
std::vector<std::string> getIfFilenames();
73+
74+
void setSwitchData(const std::string& filename, const SwitchData& switch_data);
75+
void removeSwitchData(const std::string& filename);
76+
SwitchData getSwitchData(const std::string& filename);
77+
std::vector<std::string> getSwitchFilenames();
78+
79+
int getStartBlockId() const;
80+
int getBlockIdByName(const std::string& block_name) const;
81+
};
82+
83+
class Workspace
84+
{
85+
public:
86+
std::map<std::string, AnimationData> animations; // <animation_name, AnimationData>
87+
FrameData initial_pose_data;
88+
89+
void loadWorkspace(const std::string& workspace_path);
90+
std::vector<std::string> getAnimationNames();
91+
const AnimationData& getAnimationData(const std::string& name) const;
92+
FrameData getInitialPoseData();
93+
void setInitialPoseData(const FrameData& frame_data);
94+
};
95+
96+
} // namespace animation_system
97+
98+
#endif // ANIMATION_FILES_H_

0 commit comments

Comments
 (0)