You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge of the rewrite_StateMachine development branch including the following changes:
- A rewrite of the state machine system and associated upgrade of all demo apps. See #51 .
- Some changes on the main app timing (CAN and RT thread timing management and overtime error)
- Slight simplification of the CMakeFile: no more ROS1 cross-compilation option and allow out-of-folder apps
- Support for Fourier ArmMotus EMU version
- Some documentation rewrite
Co-authored-by: Emek Barış Küçüktabak <32764586+emekBaris@users.noreply.github.com>
Co-authored-by: Ben <75413535+benvonh@users.noreply.github.com>
Co-authored-by: justinfong-unimelb <49131879+justinfong-unimelb@users.noreply.github.com>
Copy file name to clipboardExpand all lines: README.md
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,15 +2,15 @@
2
2
3
3
CORC is a free and open source robotic development software stack, written in C++.
4
4
5
-
The project was initiated at the University of Melbourne in partnership with Fourier Intelligence, however has welcomed (and continues to welcome) collaborators from all institutions. The project was initially developed to run on an ExoMotus X2 Exoskeleton powered by a Beaglebone Black, however, the software is designed to be extensible to any embedded Linux and CANopen enabled Robotic platform. The repository currently also includes code which has been run on the ArmMotus M1and M3 rehabilitation devices, and using desktop or laptop Ubuntu installations.
5
+
The project was initiated at the University of Melbourne in partnership with Fourier Intelligence, however has welcomed (and continues to welcome) collaborators from all institutions. The project was initially developed to run on an ExoMotus X2 Exoskeleton powered by a Beaglebone Black, however, the software is designed to be extensible to any embedded Linux and CANopen enabled Robotic platform. The repository currently also includes code which has been run on the ArmMotus M1, M2 and M3 (EMU) rehabilitation devices, and using desktop or laptop Ubuntu installations.
6
6
7
7
## The CANOpen Robot Controller project includes:
8
8
9
9
- An extensible framework to represent multibody rigid robotic systems.
10
-
- An event driven state machine to develop custom applications (see [here](doc/3.Software/StateMachine.md)).
10
+
- An event driven state machine to develop custom applications (see [here](doc/3.Software/CustomApplication.md)).
11
11
- An implementation of [CANopen Socket](https://github.com/CANopenNode/CANopenSocket) to provide an interface between CAN enabled embedded Linux system and CANopen-based motor drivers/sensors.
12
12
- Documentation (this page and associated ones and code Doxygen).
13
-
- Functional application examples.
13
+
- Functional application examples.
14
14
15
15
### Project Overview
16
16
@@ -34,7 +34,7 @@ CORC relies on [spdlog](https://github.com/gabime/spdlog) for both general loggi
34
34
See [here](doc/3.Software/Logging.md) for more info on using the logging system.
35
35
36
36
### ROS Support
37
-
See [here](doc/1.GettingStarted/Simulation.md) for instructions on how to build and run a CORC app with ROS support.
37
+
See [here](doc/1.GettingStarted/AdvancedSimulationAndHardwareTesting.md) for instructions on how to build and run a CORC app with ROS support.
38
38
39
39
### Network communication
40
40
See [here](doc/3.Software/NetworkCommunication.md) for instructions on using libFLNL for communication.
@@ -47,10 +47,8 @@ To generate the Doxygen documentation of the code you can simply run `doxygen Do
linkLengths: [0.056, 0.135, 0.5, 0.615] # Link lengths used for kinematic models (in m), excluding tool
51
-
linkMasses: [0, 0.450, 0.400, 0.100, .270] # Link masses used for gravity compensation (in kg), excluding tool
55
+
linkLengths: [0.0, 0.135, 0.5, 0.615] # Link lengths used for kinematic models (in m), excluding tool
56
+
massCoeff: [-1.30, -1.06] # Mass coefficient (identified) used for gravity compensation (in kg), excluding tool. Model is tau[1]=M[0] * sin(q[1])*g and tau[2]=M[1] * cos(q[2])*g ;
57
+
qSpringK: [0, 2.42, 4.19] #Joint spring compensation: tau=Ko+K*q
Copy file name to clipboardExpand all lines: doc/1.GettingStarted/GettingStarted.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,6 +10,8 @@ CORC is flexible in that it can run on any computer with a Controller Area Netwo
10
10
11
11
Examples of use of a dedicated embedded computer are when the robotic device is mobile (such as an assistive exoskeleton) or when separation between the robot controller and the user interface is desired (such as on deployment-ready rehabilitation devices). Alternatively, you may choose to use a desktop computer if you wish to run more powerful control algorithms on your device, or if your development is more experimental in nature. With appropriate choice of software packages, it is also possible to transition deployment from a desktop computer to an embedded computer.
12
12
13
+
> Note that cross-compiling a ROS app is theoretically possible but not described in this documentation (contibutions are welcome!).
14
+
13
15
## Choice of Development Environment
14
16
Independent of the deployment environment, a choice may also be made regarding the development environment. If the deployment environment is Linux-based, this can be the same device as your deployment computer (although, development will typically require more computational power than deployment). Alternatively, you may develop on a different computer to the deployment computer. In this case, you have the choice of using either Windows or Linux based environments*, and you will need to cross compile for your deployment environment (i.e. compile on a system which is not used to run the executable). This requires an appropriate toolchain to be installed.
0 commit comments