Comments (12)
Hi, thanks for the update. Unfortunately, I can't check it at the moment. You know what happens in Ukraine. Bittle is waiting at home until the war is over.πΊπ¦
Take care bro.
from opencat.
from opencat.
@borntoleave it'd probably work. But the main logical issue here is that each skill behaves like an infinite loop of repetitive operations. In this case, we always want to prevent redundant commands sending (aka duplicates) by checking what was the last action. Otherwise, teleop tools that are designed to constantly send the recent state would just DDOS the Bittle. And that's why in the most of implementations people add an additional protection to serial code e.g. if current_command != previous_command
. That's what I did as well. Yeah, I can still send the command twice if I want. But the things might become much easier if apart from the skills there will be implemented a more common for ROS technic, when we move objects based on (x, y, z, th) vectors. Then I can constantly send just coordinates's updates, and Bittle would decide how to reach those points.
from opencat.
BTW, can you provide a pattern for a single "step"? E.g. when we walk or crawl, such skills consist of a number of repetitive steps I guess. I want to extract it for testing.
from opencat.
BTW, can you provide a pattern for a single "step"? E.g. when we walk or crawl, such skills consist of a number of repetitive steps I guess. I want to extract it for testing.
Yes, in instinctBittle.h, you can find the frames of gaits. The explanation of the format can be found at https://bittle.petoi.com/11-tutorial-on-creating-new-skills.
from opencat.
@borntoleave I checked the guide but it's not really clear what are 1-7 joint angles for in the provided table? And what would happen if I change 1-7 values while calibration?
Moreover, I see that we can set the head's angle for static postures. But it's missing for gaits. Can you elaborate on that? And how can I control it? If we talk about camera usage, I'd prefer disabling the head's rotation while moving, as RPi can't stabilize the video and streaming becomes awful.
from opencat.
Seems like I found where the head is controlled in code: https://github.com/PetoiCamp/OpenCat/blob/main/OpenCat.ino#L828-L833
But it's not really convenient that I need to disable it globally. Would be great to have some option probably for the more flexible head control.
P.S. The question regarding 1-7 joint angles is still actual.
from opencat.
Seems like I found where the head is controlled in code: https://github.com/PetoiCamp/OpenCat/blob/main/OpenCat.ino#L828-L833
But it's not really convenient that I need to disable it globally. Would be great to have some option probably for the more flexible head control.
P.S. The question regarding 1-7 joint angles is still actual.
The 1~7 joints are reserved for our 12 DOF robot, with head, tail, and should roll angles.
The joints are grouped by four for the convenience of logic conditions in the code:
head pan | head tilt | tail pan | N/A |
shoulder roll LF | shoulder roll RF | shoulder roll RB | shoulder roll LB |
shoulder pitch LF | shoulder pitch RF | shoulder pitch RB | shoulder pitch LB |
knee pitch LF | knee pitch RF | knee pitch RB | knee pitch LB |
where L means Left, R means Right, F means Front, B means Back.
Gaits use periodical data. If I include the head and unused joints' angles (0-7th joints), it will double the flash memory usage and exceed the available SRAM on ATmega328P. So for the 8 DOF models, I only save 8 joints (8-15th joints) per frame for the gaits. The postures and behaviors have only one frame or a few frames, so I kept all the joints for better compatibility for my future models. Changing the calibration value of 1-7 joints won't affect anything because no servos are attached to those ports.
The head movement is generated on the fly as a function of the period of the gait. It's a trade-off for limited flash space. The good part is that you may adjust the amplitude and period of the rotation to compensate for the wobbling of the body.
from opencat.
Ok, thanks for clarification! I'll play with head's rotation.
Let me know when you find the root cause of the original issue with serial commands please.
from opencat.
Hi,
I have fixed the issue and pushed a big update to the firmware: https://github.com/PetoiCamp/OpenCat/tree/2.0
You can read the changelog for the major updates: https://github.com/PetoiCamp/OpenCat/blob/2.0/ChangeLog.md
from opencat.
Hi, thanks for the update. Unfortunately, I can't check it at the moment. You know what happens in Ukraine. Bittle is waiting at home until the war is over.πΊπ¦
from opencat.
Fixed in the 2.0 branch
from opencat.
Related Issues (20)
- Running the Firmware Uploader on a Raspberry PI does not work HOT 1
- Changing the speed of "Walk" HOT 1
- MU Camera using arduino IDE error HOT 2
- Can I make a deb package for OpenCat UI app? HOT 1
- wrong-path-for-interpreter /opt/anaconda3/envs/petoi/bin/python3
- very-long-line-length-in-source-file > 512 HOT 3
- Unable to upload code after bluetooth connection failed HOT 10
- Wrong
- compatible with "azure openai api"
- Adding to siri, but not work in siri. HOT 2
- Can you configure a standard Python package format for setup.py?
- opencat app bug : Team: η½η»θΏζ₯ε·²δΈζγ HOT 2
- After uploading the code of OpenCat.ino Robot will not accept any new code. HOT 3
- Sketch too big for NyBoard V0_2 HOT 2
- Petoi Bluetooth Adapter not compatible with NyBoard_V02 ? HOT 2
- pyUI/commonVar.py uses wrong paths for Linux HOT 2
- Is there a way to disable the beep sound? HOT 1
- Getting data from IMU data (such as YRP and Accelerators) on the main source HOT 9
- Add support for Mistral HOT 1
- ardSerial.py suggestion HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opencat.