University of Southern CaliforniaUSC
USC ICT TwitterUSC ICT FacebookUSC ICT YouTube

Delays in repeated locomotions | General SmartBody Discussion | Forum


Lost password?
Advanced Search

— Forum Scope —

— Match —

— Forum Options —

Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Delays in repeated locomotions
April 10, 2015
1:19 pm
New Member
Forum Posts: 1
Member Since:
April 10, 2015
sp_UserOfflineSmall Offline

I recently got a Smartbody test app put together on Debian Linux with OGRE 1.9 and have been experimenting with locomotion. First thing I did was put ten sinbads in a circle and then tell them to walk to the opposite side of the circle- a ten way collision. They were all very polite about it and carefully avoided each other while working their way to their goal. Amazing!

Now I am working with a single sinbad on a plane and trying to get him to respond to mouse clicks by walking to where I have clicked. On mouse click I am calling interuptCharacter and then executeBML on a locomotion with the new point. This works, but with about a four second delay. Sinbad will forget about his previous locomotion and take off for his new goal seamlessly, even if he is still travelling to the first goal, but what to do about the delay?

I occurs to me that interrupting and executing a new locomotion may not be the best way to go. Is it possible to edit the existing locomotion to remove the existing waypoint and add the new one?

April 10, 2015
6:16 pm
Forum Posts: 985
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

The steering algorithm uses SteerSuite ( with the PPRAI library, which calculates a short, medium and long term plan for navigation. Keep in mind that the steering commands dictate how the locomotion should respond, but it is possible that the locomotion system cannot respond quickly enough or great enough. So if you have collisions, that is the reason. having said that, I think the system does a reasonably job balancing collision avoidance and animation fidelity.


Every time you send a BML command for a new locomotion target, the old target is removed, and the new one put in place. You shouldn't need to call interruptCharacter(). You can see this effect if you run sbgui, open the examples/, left click on the character, then right click to the location that you want him to walk to, then right click again to a new location.

You can specify multiple waypoints for the characters using BML locomotion commands. There isn't a way to 'edit' the current waypoints; you'd need to resend an entire path plan when you want to update it.



Forum Timezone: America/Los_Angeles

Most Users Ever Online: 733

Currently Online:
107 Guest(s)

Currently Browsing this Page:
1 Guest(s)

Top Posters:

jwwalker: 80

jyambao: 53

rbaral: 47

adiaz: 30

WargnierP: 29

lucky7456969: 28

mbarros: 28

avida.matt: 26

JonathanW: 24

laguerre: 23

Member Stats:

Guest Posters: 72

Members: 2025

Moderators: 1

Admins: 3

Forum Stats:

Groups: 1

Forums: 5

Topics: 525

Posts: 2471

Moderators: smbyadmin: 0