C# .net 4.5 Phoenix IK Port

I have the Phoenix IK code ported and working for .net C# 4.5. Currently working on a java port as well. I can make it available if anyone is interested.

I am using it with a custom hexapod controlled over a bluetooth serial connection to a SSC32. The java port will run on the raspberry PI communicating with the SSC32 over serial. Both will use the same configuration files and configuration UI on a windows 7/8 computer.

I also have various open source servo brackets and legs for hexapods that can be 3D printed. Also have replacement bottom servo cases to allow mountain a bearing on a standard servo. These can also be 3D printed. I am working towards a hexapod that can be 3D printed and run either over a remote link or a raspberry pi. This is a autonomous robot with 2 IR sensors and ultrasound sensor.

Photos? Videos?

Images can be found here:
slimordium.imgur.com

Printable 3D model for 771 servo bearing mount : tinkercad.com/things/6tLhGut83IG
Printable 3D model for MG996, MG946 servo bearing mount : tinkercad.com/things/lV2IYpRfQyV
Printable 3D model for coxa joint: tinkercad.com/things/lBPeEqyUejm
For the coxa joint, the two pieces are fused together using acetone which makes a very durable part. The red piece is the vertical piece.

The Java port is complete, currently using PI4J libraries. Tested and running on a raspberry PI B+, no jitter or lag.

I am using a arduino (86duino.com) clone that has a onboard accelerometer/gyro to read sensors. The reason for this is that some of the sensor logic requires a RTOS. The commands are sent to the PI via a serial connection, which basically functions as a sort of automated remote control. The PI listens to commands from the arudino and then the PI does the IK calculations and drives the servos using a SSC-32.

The obstacle avoidance works well, next for room mapping and route planning!

I’m actually very interested in this. I was starting a similar project this weekend to get my Phoenix moving around this weekend. This could save me considerable amounts of time! Would you mind posting the code up somewhere? C# or java, its all the same to me.

I have tried to post the C# and Java code to this forum, but I think the posts are too long. Any ideas as to where I can upload to share?

Thanks!

Did you ever get your Phoenix moving?

Looks awesome…I wouldn’t mind trying it out

Send me a private message as to where I can send it. Do you want the code or just the compiled app? It is a visual studio 2013 solution. Or I can just send the code for the IK class?

Latest video

That’s a very interesting project. Been working pretty good from the video… :wink:

New 8 sensor head for the hexapod. Helps tremendously with avoiding things.

Very nice, have you already implemented the code to take care of those sensors ?

Actual visualization of sensor data including yaw/pitch/roll/magnetic heading and 8 ultrasonic rangefinders. This is a screenshot from my remote control/remote automation application. Once I finalize in .net, it is an easy port to java.

Very nice work and an interesting project!

If you wish to share your code with the RobotShop community, the simplest way would be as an attachment (preferably compressed) to a post here on the forum.

Sincerely,

I don’t see an attachment button in the full post editor. I must be missing something simple :slight_smile:

Here it is… :wink:

This is a visual studio 2012 solution. Warning! It is a work in progress! :slight_smile:

Included as well are the associated files for arduino and a java IK port. The java code has not been updated recently but it does work. It listens for commands from the arduino on the serial port. (x travel/y travel …)

The C#/Java IK code is a port of code originally written by Jeroen Janssen [aka Xan] and Kurt Eckhardt(KurtE).

If anyone has any changes/updates/fixes/enhancements, be sure to share them!

-Larry
HexConfigurator.zip (113 KB)

Fixed Java code now includes basic avoidance, includes the start of GPS navigation support lots of code changes/fixes. Updated Arduino code that includes GPS support for AdaFruit Ultimate GPS module.
HexAutomation.zip (11.1 KB)

The Raspberry PI 2 java GPS navigation way-point following code works.
Also can control the hexapod via a PS2 controller and capture way-points with a button click. When done, push the GPS nav button on the controller and the hexapod will navigate to the way-points in sequential order while avoiding obstacles. Way points saved to file for future use.
Raspberry PI 2 pi4j java Adafruit ultimate GPS support via USB - serial.
Includes NMEA sentence parser (I will post code credits when I re-find the link)
Optimized for the Raspberry PI 2 with a thread for the GPS data and a thread for handling input from the Arduino.
Also working PS2 control code in Java for the PI 2.
Commented out MPU-9150 code for the Arduino that works.
BTW - Compasses and hexapods with lots of magnetic interference does not work well.
Balance code works. Code coming soon for terrain adaptation.
New 3d models for legs with spring feet that work fairly well and give the hexapod a very organic gait.
Inverse kinematics code now completely floating point math which solves odd gait movements at the extremes of servo movement.
Basic code added for voice feedback from the hexapod such as “way point reached”.