You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
(13) |
Apr
|
May
(1) |
Jun
(34) |
Jul
(23) |
Aug
(16) |
Sep
|
Oct
(11) |
Nov
(13) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(2) |
Feb
(3) |
Mar
(13) |
Apr
(1) |
May
(5) |
Jun
(11) |
Jul
(5) |
Aug
(10) |
Sep
(16) |
Oct
(8) |
Nov
(4) |
Dec
(5) |
2006 |
Jan
(18) |
Feb
(5) |
Mar
(6) |
Apr
(12) |
May
(3) |
Jun
(1) |
Jul
(4) |
Aug
(16) |
Sep
(1) |
Oct
(5) |
Nov
(35) |
Dec
(7) |
2007 |
Jan
(17) |
Feb
(14) |
Mar
(7) |
Apr
(9) |
May
(16) |
Jun
(31) |
Jul
(13) |
Aug
(23) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(1) |
2008 |
Jan
(8) |
Feb
(1) |
Mar
(3) |
Apr
(2) |
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
(5) |
Mar
|
Apr
(2) |
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
(1) |
Oct
|
Nov
(3) |
Dec
|
2010 |
Jan
(6) |
Feb
(6) |
Mar
(10) |
Apr
(5) |
May
(11) |
Jun
|
Jul
|
Aug
(2) |
Sep
(8) |
Oct
(2) |
Nov
(3) |
Dec
(5) |
2011 |
Jan
(7) |
Feb
|
Mar
(1) |
Apr
(3) |
May
(10) |
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
(4) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: William G. <wi...@ya...> - 2007-07-19 11:54:19
|
Hi, This is a Python ODE performance test. It is cracked when obj count=98 and performance is low. maybe 10-20 fps in my Core Duo 1.8G [img]http://3d.247sv.com/bbs/ode01.gif[/img] I think it is too slow , I remember that novodex demo is 50-80fps with more than 1000 boxes, maybe more. Is this the ODE's problem, or PyODE's? How to do a test like this with ODE (C++)? Thanks This is the code: [code] # pyODE example 3: Collision detection # Originally by Matthias Baas. # Updated by Pierre Gay to work without pygame or cgkit. import sys, os, random, time from math import * from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * import ode # geometric utility functions def scalp (vec, scal): vec[0] *= scal vec[1] *= scal vec[2] *= scal def length (vec): return sqrt (vec[0]**2 + vec[1]**2 + vec[2]**2) # prepare_GL def prepare_GL(): """Prepare drawing. """ # Viewport glViewport(0,0,640,480) # Initialize glClearColor(0.8,0.8,0.9,0) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST) glDisable(GL_LIGHTING) glEnable(GL_LIGHTING) glEnable(GL_NORMALIZE) glShadeModel(GL_FLAT) # Projection glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective (45,1.3333,0.2,20) # Initialize ModelView matrix glMatrixMode(GL_MODELVIEW) glLoadIdentity() # Light source glLightfv(GL_LIGHT0,GL_POSITION,[0,0,1,0]) glLightfv(GL_LIGHT0,GL_DIFFUSE,[1,1,1,1]) glLightfv(GL_LIGHT0,GL_SPECULAR,[1,1,1,1]) glEnable(GL_LIGHT0) # View transformation gluLookAt (2.4, 3.6, 4.8, 0.5, 0.5, 0, 0, 1, 0) # draw_body def draw_body(body): """Draw an ODE body. """ x,y,z = body.getPosition() R = body.getRotation() rot = [R[0], R[3], R[6], 0., R[1], R[4], R[7], 0., R[2], R[5], R[8], 0., x, y, z, 1.0] glPushMatrix() glMultMatrixd(rot) if body.shape=="box": sx,sy,sz = body.boxsize glScale(sx, sy, sz) glutSolidCube(1) glPopMatrix() # create_box def create_box(world, space, density, lx, ly, lz): """Create a box body and its corresponding geom.""" # Create body body = ode.Body(world) M = ode.Mass() M.setBox(density, lx, ly, lz) body.setMass(M) # Set parameters for drawing the body body.shape = "box" body.boxsize = (lx, ly, lz) # Create a box geom for collision detection geom = ode.GeomBox(space, lengths=body.boxsize) geom.setBody(body) return body # drop_object def drop_object(): """Drop an object into the scene.""" global bodies, counter, objcount body = create_box(world, space, 1000, 0.6,0.2,0.2) body.setPosition( (random.gauss(0,0.1),3.0,random.gauss(0,0.1)) ) theta = random.uniform(0,2*pi) ct = cos (theta) st = sin (theta) body.setRotation([ct, 0., -st, 0., 1., 0., st, 0., ct]) bodies.append(body) counter=0 objcount+=1 print "obj count =%d " % (objcount) # explosion def explosion(): """Simulate an explosion. Every object is pushed away from the origin. The force is dependent on the objects distance from the origin. """ global bodies for b in bodies: l=b.getPosition () d = length (l) a = max(0, 40000*(1.0-0.2*d*d)) l = [l[0] / 4, l[1], l[2] /4] scalp (l, a / length (l)) b.addForce(l) # pull def pull(): """Pull the objects back to the origin. Every object will be pulled back to the origin. Every couple of frames there'll be a thrust upwards so that the objects won't stick to the ground all the time. """ global bodies, counter for b in bodies: l=list (b.getPosition ()) scalp (l, -1000 / length (l)) b.addForce(l) if counter%60==0: b.addForce((0,10000,0)) # Collision callback def near_callback(args, geom1, geom2): """Callback function for the collide() method. This function checks if the given geoms do collide and creates contact joints if they do. """ # Check if the objects do collide contacts = ode.collide(geom1, geom2) # Create contact joints world,contactgroup = args for c in contacts: c.setBounce(0.2) c.setMu(5000) j = ode.ContactJoint(world, contactgroup, c) j.attach(geom1.getBody(), geom2.getBody()) ###################################################################### if __name__ == '__main__': # Import Psyco if available try: import psyco psyco.full() except ImportError: pass # Initialize Glut glutInit ([]) # Open a window glutInitDisplayMode (GLUT_RGB | GLUT_DOUBLE) x = 0 y = 0 width = 640 height = 480 glutInitWindowPosition (x, y); glutInitWindowSize (width, height); glutCreateWindow ("testode") # Create a world object world = ode.World() world.setGravity( (0,-9.81,0) ) world.setERP(0.8) world.setCFM(1E-5) # Create a space object space = ode.Space() # Create a plane geom which prevent the objects from falling forever floor = ode.GeomPlane(space, (0,1,0), 0) # A list with ODE bodies bodies = [] # A joint group for the contact joints that are generated whenever # two bodies collide contactgroup = ode.JointGroup() # Some variables used inside the simulation loop fps = 50 dt = 1.0/fps running = True state = 0 counter = 0 objcount = 0 lasttime = time.time() # keyboard callback def _keyfunc (c, x, y): sys.exit (0) glutKeyboardFunc (_keyfunc) # draw callback def _drawfunc (): # Draw the scene prepare_GL() for b in bodies: draw_body(b) glutSwapBuffers () glutDisplayFunc (_drawfunc) # idle callback def _idlefunc (): global counter, state, lasttime t = dt - (time.time() - lasttime) if (t > 0): time.sleep(t) counter += 1 if state==0: if counter==20: drop_object() if objcount==200: state=1 counter=0 # State 1: Explosion and pulling back the objects elif state==1: if counter==100: explosion() if counter>300: pull() if counter==500: counter=20 glutPostRedisplay () # Simulate n = 2 for i in range(n): # Detect collisions and create contact joints space.collide((world,contactgroup), near_callback) # Simulation step world.step(dt/n) # Remove all contact joints contactgroup.empty() lasttime = time.time() glutIdleFunc (_idlefunc) glutMainLoop () [/code] --------------------------------- Pinpoint customers who are looking for what you sell. |
From: <gf...@sh...> - 2007-07-17 05:26:54
|
行政工作统筹管理高级研修班 举办时间: 北京:7月28-29日 上海:8月10-11日 深圳:8月24-25日 举办地点: 北京新兴宾馆 上海园林格兰云天大酒店 深圳新大洲酒店 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 授 课 对 象 行政总监,行政经理,办公室主任,行政文员 【主办公司】 众人行管理咨询机构 深圳总部电话:0755-26075265 26075429 上海办事处电话:021-51875149 北京办事处电话:010-51293353 传真: 0755-61351396 82129209 联系人:彭小姐 曾小姐 ● 背景 如果您是一位企业管理者,没有专业尺度如何衡量行政工效? 如果您是一位行政负责人,欠缺专业工具如何自信面对员工? 如果您是一位文秘工作者,错过专业指导怎能获得职场晋升? 本课程将为您提供从理念到技能的全面训练,帮助您提高行政统筹管理的专业技 能,主动掌握工作节奏,有效控制行政成本,防范行政工作“黑洞”!课程将以国际 通用的职业标准为基础,结合老师多年海外留学、从业的经验,加之其独到精深的讲 解呈现和训练点评的专业实力,对企业行政管理人员进行科学、专业、先进的系统化 训练。 ● 课程形式 实操讲解-深度解析-实战分享-情境模拟-多媒体展示 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 课程大纲: 第一天 一、现代企业中行政管理的定位 1、现代企业运行模型 2、行政管理工作的绩效价值 3、行政管理人员的素质特点 4、行政管理制度的框架结构 演练:工作漏洞究竟出在哪里? 二、行政主管的自我管理 1、职业规范要点与评估标准 2、人际关系处理的准则与该注意的”陷井” 3、职业优势保持的要点 演练:如何说服你的上司 三、行政部门的内部管理 1、前台文员管理 2、秘书(领导秘书)管理 3、行政工作人员管理 4、司机、保安、清洁工管理 5、行政事务性工作的内部分工 6、强化行政工作执行机制 7、呈现突出行政工作业绩 演练:整合资源-分工协作-达成目标 四、经验积累与知识创新管理 1、公文处理与管理 2、会议成果的提炼与分享 3、工作创新管理与应用 五、行政统筹管理关键事物控制 1. 集团电话管理 2. 集团的复印机管理 3. 集团的车辆管理不同方式 4. 食堂管理的外包流程 5. 员工的应急安全保障 6. 办公室布局管理 7. 办公室搬家管理 8. 与物业的关系要点 9. 对施工方的管理要点 10. 公司驻在地的社区关系 11. 公共关系管理 12. 危机处理 六、行政经费管理与控制 1、如何处理好三种关系与三项原则 2、行政业务费用管理 3、行政成本控制的重要路径 4、办公成本控制的无项原则 5、运用“白金触点”原理节省行政经费 七、行政统筹必备的沟通技巧 1、施展人际影响解决管理冲突 2、感召他人的4大热键 3、表扬、批评5步法 4、令人心服口服的方法 演练:为何费力不讨好!? 八、会议组织与活动管理 1、成功会议的准备工作:会前、会中、会后 2、如何主持会议与公司活动 3、高效率会议的实用工具 九、接待工作与职业礼仪 1、接待工作中的十大禁忌论 2、行政人员的着装、仪表、语言 3、使用电话、手机、E-mail的礼仪规范 4、宴请、参观、旅游的礼仪规范 十、行政管理人员的职业规划 1、行政管理职业的职场阶梯 2、职业生涯规划中的五个一工程 3、从优秀到卓越,从技术到艺术 毕业演练:八分钟设计职场八年! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 讲师介绍: 刘大海老师 欧亚人力资源发展联盟中国区首席咨询师,亚洲咨询培训与发展协会 秘书长,中国企管网资深顾问。2001年开始专职从事于培训与咨询工作,以访问学者 身份多次出访过法国、德国、瑞士等国知名大学和大型企业,在企业中高层经理人领 导素质提升、企业行政体系构建及通用管理领域等方面拥有领先的视角和丰厚的实践 经验。其授课特色是从国内企业所面临的实际问题出发,通过各种典型案例的讲解和 分析,以及模拟现实环境的操作演练,系统提升企业解决问题的能力和实施操作水平。 指导过的企业有 :安利(中国)、百度、海尔集团、美的集团、联想集团、 深发展、东风日产、上海比亚迪、深圳移动、广州移动、中山移动、中科智担保集团、 航天科工集团、广东核电集团、华侨城物业、长城物业、北京信威通讯、厦门名姿集团、 深圳人保财险、深圳天虹商场、深圳市经纬科技有限公司、中国人才热线、 西部人力资源市场、泰昂电子、超华电子、梁子时装等百余家中外企业。 |
From: Ethan Glasser-C. <gl...@cs...> - 2007-07-17 00:48:22
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Nathaniel Troutman wrote: > So they must be available to PyODE. Are they somewhere and I'm just missing them? I tried my_u_joint.getAngle1() and that threw an exception saying that the joint object doesn't have the method getAngle1(). So is it just missing, an oversight in the coding? I wrote this patch a few months ago; PyODE CVS has these functions, wrapped in exactly the way you tried. We haven't had a release since then, though (the changes aren't in 1.2.0). > Also, unrelated, but how do I reply properly to messages in the mailing-list so that they show up threaded? Mine keep starting new threads. I'm not sure; this might be a Yahoo! issue. Ethan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGnBIIhRlgoLPrRPwRAp5vAJ9y1sziMSTxv5FjTUZuNhuh6Ja0GgCfZnDs xmqRUYAUOvg1d4MX+8yC3b0= =LV7G -----END PGP SIGNATURE----- |
From: Nathaniel T. <loc...@ya...> - 2007-07-17 00:19:53
|
I can not seem to find anyway to get the angles from a universal join. I ch= ecked the ODE manual and they are in there under:=0A=0A=0AdReal dJointGetUn= iversalAngle1 (dJointID);=0A=0AdReal dJointGetUniversalAngle2 (dJointID);= =0A=0A=0ASo they must be available to PyODE. Are they somewhere and I'm jus= t missing them? I tried my_u_joint.getAngle1() and that threw an exception = saying that the joint object doesn't have the method getAngle1(). So is it = just missing, an oversight in the coding?=0A=0AAlso, unrelated, but how do = I reply properly to messages in the mailing-list so that they show up threa= ded? Mine keep starting new threads.=0A=0AThanks,=0ANathaniel=0A=0A=0A=0A= =0A=0A=0A=0A=0A =0A________________________________________________________= ____________________________=0AThe fish are biting. =0AGet more visitors on= your site using Yahoo! Search Marketing.=0Ahttp://searchmarketing.yahoo.co= m/arp/sponsoredsearch_v2.php |
From: <fa...@ya...> - 2007-07-16 16:12:25
|
高 级 文 秘 职 业 化 训 练 中 国・上 海・2007 年 07月 21-22日 中 国・北 京・2007 年 07月28-29日 中 国・深 圳・2007 年 08月11-12日 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 授 课 对 象 企业中层行政管理干部和文秘工作人员,包括办公室主任、行政部经理、董事长秘书、 总经理秘书、行政助理、行政主管、行政部门文员等 ⊙主 办单位:众 人 行 管 理 咨 询 ⊙培 训价格: 1 8 0 0元 / 人 深圳总部电话:0755-26075265 26075429 26075365 22008632 81069646 上海办事处电话:021-51875149 北京办事处电话:010-51293353 传真: 0755-61351396 82129209 联系人:凌小姐 曾小姐 ● 背 景 对高级文秘来说,没有受到过系统训练,将无法从战略性全方位角度认知秘书与助理 的工作;在所从事的工作中感觉缺乏理论支持;工作中总是被动行事,不能主动掌握工作 节奏;想给公司节省费用,但却不知从何处下手,如何节省;行使对外界社会的管理职能 时没有感觉到有很多事物的“黑洞”…… 诸如以上的问题,都是每个文秘人员所面对与困惑的,如何把握正确方向从而迅速提 升自身职业素养,成了我们必须面对与解决的课题。 ● 课 程 收 获 → 掌握高级行政文秘所具备的基本技能、技巧 → 善于处理工作中的难点,掌握待人接物的技巧,实现有效的时间管理 → 实现现代文秘工作和档案管理工作的规范衔接 → 善于上传下达,掌握有效沟通的技巧 → 学习掌握规范的商务写作技巧,提高公文写作水平 → 学习掌握会议的组织思路及高效率的组织方法。 → 掌握基本的商务活动礼仪,使您适应日常商务场合的礼仪要求 → 掌握拜访客户的必备礼节,从细微之处体现您对他人的尊重 → 了解接待客户的礼仪细节,让您的每一位客人宾至如归 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 课 程 大 纲 一、企业行政文秘职业特性与素质要求 ◇ 文秘人员的职业价值和作用 → 案例:秘书岗位的评价 ◇ 企业文秘工作的基本特征 ◇ 文秘人员的职责与主要工作内容 → 案例:文秘人员的职位说明书样板 ◇ 文秘人员的自我角色定位 ◇ 优秀文秘人员的胜任素质 → 案例分析: ◇ 文秘的职业发展前景与实现路径 二、公文写作与处理实务 ◇ 公文分类 ◇ 公文的结构 ◇ 秘书文字支持应达到的要求 ◇ 公文写作基本要领 ◇ 13种常用公文模版 ◇ 常用公函 ◇ 请示与报告、批复的写作与范例 ◇ SMART原则与SWOT方法 ◇ 计划撰写注意事项 三、会务组织与管理 ◇ 会务分类-组织思路 ◇ 组织阶段:会前准备、会中协助、会后整理 ◇ 组织方法 ◇ 例会的组织 ◇ 大型会议、展会的组织 ◇ 如何担任会议主持人 ◇ 如何当好会议秘书? ◇ 全景案例:某公司年度大型庆典活动策划始末 → 案例:大型会议及活动策划案 ◇ 如何避免陷于会议忙碌之中? 四、文件资料管理与运用 ◇ 文档分类标准 ◇ 档案管理的原则 ◇ 文档的索引 ◇ 电子文档的保管 ◇ 名片系统管理 ◇ 印章的管理 → 研讨:如何利用档案为公司业务服务? 五、信息档案管理 ◇ 信息管理基本流程 ◇ 信息的收集整理 ◇ 信息的传递 ◇ 信息的储存与保密 ◇ 保密意识与保密规则 ◇ 秘书的基本职业道德 六、人际沟通与工作协调技巧 ◇ 沟通对于秘书的意义 ◇ 秘书常用沟通方式之比较 ◇ 秘书人员的沟通技巧 → 案例:如何听懂老板的“没有说出来的意思”? ◇ 秘书让领导刮目相看、获得信任? ◇ 如何与你的上司协调而不帮倒忙? ◇ 秘书人员如何与各种上司相处? ◇ 问题:我的上级调走了怎么办? → 案例:领导让我难为情,我该怎么办? → 案例:如何与同事或下级相处? → 案例:有人在你面前抱怨你的领导该怎么办? ◇ 讨论:秘书应当如何发挥自身优势起好协调作用? 七、办公室5S及办公用品管理 ◇ 整理、整顿、清扫、清洁、修养 ◇ 文件处理流程化 ◇ 办公用品申购、领用 ◇ 维护各类办公设备的正常使用 八、时间管理及工作统筹技巧 ◇ 时间管理的误区 ◇ 时间管理的原则 √目标管理与80/20法则 √缓急轻重的优先管理 √个人时间与领导工作时间计划与安排 ◇ 秘书时间管理小窍门 ◇ 宾客接待与电话处理 ◇ 自我情绪控制与压力管理 九、访客接待 ◇ 接待客人流程 ◇ 接待重要客户的注意事项 ◇ 来访电话对策 → 案例分析一、二、三 十、如何成为上司得力助手 ◇ 优秀秘书的核心竞争力 ◇ 知己知彼:分析上司的特点 ◇ 如何对待不同类型的上司 ◇ 站在下级的位置上思考上级的事 ◇ 与上级相处三大注意事项 ◇ 上司的行程安排 十一、商务礼仪与职业形象塑造 1、个人形象塑造及礼仪 ◇ 着装的TPO原则 ◇ 女士着装的要点 ◇ 男士着装的规范 ◇ 仪容礼仪规范 ◇ 化妆的礼仪 ◇ 站、坐、行的礼仪规范 ◇ 恰当的肢体语言 2、 基本社交礼仪 ◇ 见面介绍的礼仪 ◇ 问候的礼仪 ◇ 名片的使用 ◇ 日常商务活动中的礼仪规范 ◇ 与工作有关的文体活动中的礼仪规范 3、 商务宴请礼仪 ◇ 中餐礼仪 ◇ 西餐礼仪 ◇ 自助餐礼仪 ◇ 餐饮礼仪禁忌 4、 电话礼仪 ◇ 接听电话的基本原则 ◇ 接听电话的几项注意 ◇ 拨打电话的几大要点 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 讲 师 介 绍:李 革 增 深圳管理咨询行业协会成员;深圳外商投资协会讲师、香港光华管理学院客座教授; 十多年从事企业管理与咨询工作的经验,在德隆集团、深高速、深南招商集团等大型集团 公司及管理顾问公司历任市场经理、行政总监、培训总监等职位。对沟通技巧、客户服务、 行政统筹、企业文化等方面具有良好的培训与辅导经验;具有深厚的理论知识与丰富的实 践操作能力;注重对企业实际问题的分析和解决、讲求实效性和适用性。 擅长课程:《职业经理人资格认证》、《领导力训练》、《企业中层管理技能培训》 《时间管理》、《目标管理》、《企业文化》、《沟通技巧》、《高级文秘职业素质修 养》等。 培训特色:以互动、情景式培训见长,注重受训人员的感悟及参与,通过各种实际 案例及管理游戏等方式充分调动参训人员的培训热情。 曾培训或咨询过的企业有:中国电信、青岛中化集团、中石油、桑菲通讯、华侨城 集团、奥林巴斯、金碟软件(中国)有限公司、厦门航空、苏州三星电子、广东移动通 信、蛇口南顺面粉、深南招商集团、深高速、深圳中汽租赁有限公司、深圳恒波通讯、 深圳华展国际、三洋机电等。 |
From: Nathaniel T. <loc...@ya...> - 2007-07-10 03:19:13
|
Thanks, this made my life a bit easier! Yeah, the doc only has the stub "set(...)" without any explanation of what it does. Nathaniel ----- Original Message ---- From: Ethan Glasser-Camp <gl...@cs...> Cc: Pyo...@li... Sent: Monday, July 9, 2007 9:53:34 PM Subject: Re: [Pyode-user] ODE function dGeomRaySet support in PyODE? -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Nathaniel Troutman wrote: > """ void dGeomRaySet (dGeomID ray, dReal px, dReal py, dReal pz, The function is GeomRay.set(p, u). p is a position, u is a rotation. It should be in pyode-1.2.0, but the docstrings may not have been there. Ethan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGkvSthRlgoLPrRPwRAhvuAJ9404kNqm6fCxL31e1bbsa9I2ERwwCfUmjb mHyPOqpfGiAZeu+tdFUfRcU= =RvnA -----END PGP SIGNATURE----- ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Pyode-user mailing list Pyo...@li... https://lists.sourceforge.net/lists/listinfo/pyode-user ____________________________________________________________________________________ Don't pick lemons. See all the new 2007 cars at Yahoo! Autos. http://autos.yahoo.com/new_cars.html |
From: Ethan Glasser-C. <gl...@cs...> - 2007-07-10 02:53:10
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Nathaniel Troutman wrote: > """ void dGeomRaySet (dGeomID ray, dReal px, dReal py, dReal pz, The function is GeomRay.set(p, u). p is a position, u is a rotation. It should be in pyode-1.2.0, but the docstrings may not have been there. Ethan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGkvSthRlgoLPrRPwRAhvuAJ9404kNqm6fCxL31e1bbsa9I2ERwwCfUmjb mHyPOqpfGiAZeu+tdFUfRcU= =RvnA -----END PGP SIGNATURE----- |
From: Nathaniel T. <loc...@ya...> - 2007-07-10 02:34:27
|
Quick question, is the following function implemented in PyODE: """ void dGeomRaySet (dGeomID ray, dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz); Set the starting position (px,py,pz) and direction (dx,dy,dz) of the given ray. The ray's rotation matrix will be adjusted so that the local Z-axis is aligned with the direction. Note that this does not adjust the ray's length. """ -- http://www.ode.org/ode-latest-userguide.html#sec_10_7_5 I looked through the API at what I assumed would be the relevant parts, like the GeomRay class, but didn't see this function. It would be really useful for constructing rays. If not, I suppose I could work up a patch to submit, I don't know what the contribution process is though. Nathaniel ____________________________________________________________________________________ The fish are biting. Get more visitors on your site using Yahoo! Search Marketing. http://searchmarketing.yahoo.com/arp/sponsoredsearch_v2.php |
From: Nathaniel T. <loc...@ya...> - 2007-07-10 02:30:43
|
I'm using PyOpenGL-3.0.0a6 on Mac OSX 10.4.9 If I import OpenGL.GL this is what I get for the functions from a python terminal >>> OpenGL.GL.glScale Traceback (most recent call last): File "<stdin>", line 1, in ? AttributeError: 'module' object has no attribute 'glScale' >>> OpenGL.GL.glScaled <CFunctionType object at 0x16cece0> >>> OpenGL.GL.glScalef <CFunctionType object at 0x16ced50> So it must be an OpenGL 3 problem as I have a friend at work for whom the PyODE tutorial worked fine, but he was on windows and I don't know what version of PyOpenGL he was using. Thanks for work, got a question but it should be in a separate message. Nathaniel ____________________________________________________________________________________ Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC |
From: nick k. <nk...@ze...> - 2007-07-09 14:29:22
|
I saw this when I moved to PyOpenGL 3 which evidently uses ctypes, and from my quick perusal of the OpenGL reference, there isn't any alias for glScale in the library. But happily I think this was the only change I had to make in my PyOpenGL code when moving to version 3...and the installation was _much_ simpler. nick On Jul 8, 2007, at 11:06 PM, Ethan Glasser-Camp wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Nathaniel Troutman wrote: >> There is a call to: glScale(sx,sy,sz) there is no glScale, but >> glScaled and glScalef, note the "d" and "f" at the end of the >> function name. The illegal function call cause the function to >> exit without calling glPopMatrix() then the call back _drawfunc() >> is called which in turn calls draw_body() which calls glPushMatrix >> () and the process repeats without glPopMatrix() every being called. > > Hi, > > Thanks for the analysis! A user was having problems with this program > before but I couldn't figure out why. > > What version of pyopengl are you running? I'm running 2.0.1.09 and > I get: > > $ python > Python 2.4.4 (#2, Apr 26 2007, 00:02:45) > [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> import OpenGL.GL >>>> OpenGL.GL.glScale > <built-in function glScaled> >>>> OpenGL.GL.glScaled > <built-in function glScaled> > > I'll probably move it to glScaled, but I'm really curious what version > you have that doesn't have this alias in it. > > Ethan > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFGkaYfhRlgoLPrRPwRAgOtAJ9ufeIxmN8ZgXkOyRIRGXTr7LkFcQCZAalP > 1v3vI5RvIMQk0y9MFVnYTKo= > =C9xK > -----END PGP SIGNATURE----- > > ---------------------------------------------------------------------- > --- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Pyode-user mailing list > Pyo...@li... > https://lists.sourceforge.net/lists/listinfo/pyode-user |
From: Ethan Glasser-C. <gl...@cs...> - 2007-07-09 03:06:00
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Nathaniel Troutman wrote: > There is a call to: glScale(sx,sy,sz) there is no glScale, but glScaled and glScalef, note the "d" and "f" at the end of the function name. The illegal function call cause the function to exit without calling glPopMatrix() then the call back _drawfunc() is called which in turn calls draw_body() which calls glPushMatrix() and the process repeats without glPopMatrix() every being called. Hi, Thanks for the analysis! A user was having problems with this program before but I couldn't figure out why. What version of pyopengl are you running? I'm running 2.0.1.09 and I get: $ python Python 2.4.4 (#2, Apr 26 2007, 00:02:45) [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import OpenGL.GL >>> OpenGL.GL.glScale <built-in function glScaled> >>> OpenGL.GL.glScaled <built-in function glScaled> I'll probably move it to glScaled, but I'm really curious what version you have that doesn't have this alias in it. Ethan -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGkaYfhRlgoLPrRPwRAgOtAJ9ufeIxmN8ZgXkOyRIRGXTr7LkFcQCZAalP 1v3vI5RvIMQk0y9MFVnYTKo= =C9xK -----END PGP SIGNATURE----- |
From: Nathaniel T. <loc...@ya...> - 2007-07-07 23:42:13
|
I found the bug, in line 75, in the function: def draw_body(body): """Draw an ODE body. """ x,y,z = body.getPosition() R = body.getRotation() rot = [R[0], R[3], R[6], 0., R[1], R[4], R[7], 0., R[2], R[5], R[8], 0., x, y, z, 1.0] glPushMatrix() glMultMatrixd(rot) if body.shape=="box": sx,sy,sz = body.boxsize glScale(sx, sy, sz) glutSolidCube(1) glPopMatrix() There is a call to: glScale(sx,sy,sz) there is no glScale, but glScaled and glScalef, note the "d" and "f" at the end of the function name. The illegal function call cause the function to exit without calling glPopMatrix() then the call back _drawfunc() is called which in turn calls draw_body() which calls glPushMatrix() and the process repeats without glPopMatrix() every being called. Nathaniel ____________________________________________________________________________________ Yahoo! oneSearch: Finally, mobile search that gives answers, not web links. http://mobile.yahoo.com/mobileweb/onesearch?refer=1ONXIC |
From: <fa...@li...> - 2007-06-27 10:30:09
|
行政工作统筹管理高级研修班 时间: 广州:2007年7月14-15日 北京:7月28-29日 上海:8月10-11日 深圳:7月5日-6 地点: 广州湖滨宾馆 北京新兴宾馆 上海园林格兰云天大酒店(四星级) 深圳新大洲酒店 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 授 课 对 象 行政总监,行政经理,办公室主任,行政文员 ⊙主 办单位:众 人 行 管 理 咨 询 ⊙培 训价格: 2 5 0 0元 / 人 深圳总部电话:0755-26075265 26075429 26075365 22008632 81069646 上海办事处电话:021-51875149 北京办事处电话:010-51293353 传真: 0755-61351396 82129209 联系人:彭小姐 曾小姐 ● 背景 如果您是一位企业管理者,没有专业尺度如何衡量行政工效? 如果您是一位行政负责人,欠缺专业工具如何自信面对员工? 如果您是一位文秘工作者,错过专业指导怎能获得职场晋升? 本课程将为您提供从理念到技能的全面训练,帮助您提高行政统筹管理的专业技 能,主动掌握工作节奏,有效控制行政成本,防范行政工作“黑洞”!课程将以国际 通用的职业标准为基础,结合老师多年海外留学、从业的经验,加之其独到精深的讲 解呈现和训练点评的专业实力,对企业行政管理人员进行科学、专业、先进的系统化 训练。 ● 课程形式 实操讲解-深度解析-实战分享-情境模拟-多媒体展示 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 课程大纲: 第一天 一、现代企业中行政管理的定位 1、现代企业运行模型 2、行政管理工作的绩效价值 3、行政管理人员的素质特点 4、行政管理制度的框架结构 演练:工作漏洞究竟出在哪里? 二、行政主管的自我管理 1、职业规范要点与评估标准 2、人际关系处理的准则与该注意的”陷井” 3、职业优势保持的要点 演练:如何说服你的上司 三、行政部门的内部管理 1、前台文员管理 2、秘书(领导秘书)管理 3、行政工作人员管理 4、司机、保安、清洁工管理 5、行政事务性工作的内部分工 6、强化行政工作执行机制 7、呈现突出行政工作业绩 演练:整合资源-分工协作-达成目标 四、经验积累与知识创新管理 1、公文处理与管理 2、会议成果的提炼与分享 3、工作创新管理与应用 五、行政统筹管理关键事物控制 1. 集团电话管理 2. 集团的复印机管理 3. 集团的车辆管理不同方式 4. 食堂管理的外包流程 5. 员工的应急安全保障 6. 办公室布局管理 7. 办公室搬家管理 8. 与物业的关系要点 9. 对施工方的管理要点 10. 公司驻在地的社区关系 11. 公共关系管理 12. 危机处理 六、行政经费管理与控制 1、如何处理好三种关系与三项原则 2、行政业务费用管理 3、行政成本控制的重要路径 4、办公成本控制的无项原则 5、运用“白金触点”原理节省行政经费 七、行政统筹必备的沟通技巧 1、施展人际影响解决管理冲突 2、感召他人的4大热键 3、表扬、批评5步法 4、令人心服口服的方法 演练:为何费力不讨好!? 八、会议组织与活动管理 1、成功会议的准备工作:会前、会中、会后 2、如何主持会议与公司活动 3、高效率会议的实用工具 九、接待工作与职业礼仪 1、接待工作中的十大禁忌论 2、行政人员的着装、仪表、语言 3、使用电话、手机、E-mail的礼仪规范 4、宴请、参观、旅游的礼仪规范 十、行政管理人员的职业规划 1、行政管理职业的职场阶梯 2、职业生涯规划中的五个一工程 3、从优秀到卓越,从技术到艺术 毕业演练:八分钟设计职场八年! ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 讲师介绍: 刘大海老师 欧亚人力资源发展联盟中国区首席咨询师,亚洲咨询培训与发展协会 秘书长,中国企管网资深顾问。2001年开始专职从事于培训与咨询工作,以访问学者 身份多次出访过法国、德国、瑞士等国知名大学和大型企业,在企业中高层经理人领 导素质提升、企业行政体系构建及通用管理领域等方面拥有领先的视角和丰厚的实践 经验。其授课特色是从国内企业所面临的实际问题出发,通过各种典型案例的讲解和 分析,以及模拟现实环境的操作演练,系统提升企业解决问题的能力和实施操作水平。 指导过的企业有 :安利(中国)、百度、海尔集团、美的集团、联想集团、 深发展、东风日产、上海比亚迪、深圳移动、广州移动、中山移动、中科智担保集团、 航天科工集团、广东核电集团、华侨城物业、长城物业、北京信威通讯、厦门名姿集团、 深圳人保财险、深圳天虹商场、深圳市经纬科技有限公司、中国人才热线、 西部人力资源市场、泰昂电子、超华电子、梁子时装等百余家中外企业。 |
From: <szg...@16...> - 2007-06-23 19:30:35
|
欢迎合作*送票上门 公司本着互惠互利的原则合理对外代开发票,代开范围(商品销售、广告、 “电脑版”运输发票、其它服务、租赁、建筑安装、餐饮定额发票等)贵公司 在做帐或进销项方面需要到的话,我司可提供全方面的服务。 可根据所开数量额度的大小来衡量优惠的点数,并建议长期的合作。郑重 承诺!所用票据均可上网查询或验证后付款! 联系人 :刘晓华 电 话 :13714089426 E-mail :szg...@12... |
From: vff111 <li...@16...> - 2007-06-21 17:00:50
|
高 级 文 秘 职 业 化 训 练 中 国・深 圳・2007 年 06月30-07月1日 中 国・上 海・2007 年 07月 21-22日 中 国・北 京・2007 年 07月28-29日 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ● 授 课 对 象 企业中层行政管理干部和文秘工作人员,包括办公室主任、行政部经理、董事长秘书、 总经理秘书、行政助理、行政主管、行政部门文员等 ⊙主 办单位:众 人 行 管 理 咨 询 ⊙培 训价格: 1 8 0 0元 / 人 深圳总部电话:0755-26075265 26075429 26075365 22008632 81069646 上海办事处电话:021-51875149 北京办事处电话:010-51293353 传真: 0755-61351396 82129209 联系人:彭小姐 曾小姐 ● 背 景 对高级文秘来说,没有受到过系统训练,将无法从战略性全方位角度认知秘书与助理 的工作;在所从事的工作中感觉缺乏理论支持;工作中总是被动行事,不能主动掌握工作 节奏;想给公司节省费用,但却不知从何处下手,如何节省;行使对外界社会的管理职能 时没有感觉到有很多事物的“黑洞”…… 诸如以上的问题,都是每个文秘人员所面对与困惑的,如何把握正确方向从而迅速提 升自身职业素养,成了我们必须面对与解决的课题。 ● 课 程 收 获 → 掌握高级行政文秘所具备的基本技能、技巧 → 善于处理工作中的难点,掌握待人接物的技巧,实现有效的时间管理 → 实现现代文秘工作和档案管理工作的规范衔接 → 善于上传下达,掌握有效沟通的技巧 → 学习掌握规范的商务写作技巧,提高公文写作水平 → 学习掌握会议的组织思路及高效率的组织方法。 → 掌握基本的商务活动礼仪,使您适应日常商务场合的礼仪要求 → 掌握拜访客户的必备礼节,从细微之处体现您对他人的尊重 → 了解接待客户的礼仪细节,让您的每一位客人宾至如归 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 课 程 大 纲 一、企业行政文秘职业特性与素质要求 ◇ 文秘人员的职业价值和作用 → 案例:秘书岗位的评价 ◇ 企业文秘工作的基本特征 ◇ 文秘人员的职责与主要工作内容 → 案例:文秘人员的职位说明书样板 ◇ 文秘人员的自我角色定位 ◇ 优秀文秘人员的胜任素质 → 案例分析: ◇ 文秘的职业发展前景与实现路径 二、公文写作与处理实务 ◇ 公文分类 ◇ 公文的结构 ◇ 秘书文字支持应达到的要求 ◇ 公文写作基本要领 ◇ 13种常用公文模版 ◇ 常用公函 ◇ 请示与报告、批复的写作与范例 ◇ SMART原则与SWOT方法 ◇ 计划撰写注意事项 三、会务组织与管理 ◇ 会务分类-组织思路 ◇ 组织阶段:会前准备、会中协助、会后整理 ◇ 组织方法 ◇ 例会的组织 ◇ 大型会议、展会的组织 ◇ 如何担任会议主持人 ◇ 如何当好会议秘书? ◇ 全景案例:某公司年度大型庆典活动策划始末 → 案例:大型会议及活动策划案 ◇ 如何避免陷于会议忙碌之中? 四、文件资料管理与运用 ◇ 文档分类标准 ◇ 档案管理的原则 ◇ 文档的索引 ◇ 电子文档的保管 ◇ 名片系统管理 ◇ 印章的管理 → 研讨:如何利用档案为公司业务服务? 五、信息档案管理 ◇ 信息管理基本流程 ◇ 信息的收集整理 ◇ 信息的传递 ◇ 信息的储存与保密 ◇ 保密意识与保密规则 ◇ 秘书的基本职业道德 六、人际沟通与工作协调技巧 ◇ 沟通对于秘书的意义 ◇ 秘书常用沟通方式之比较 ◇ 秘书人员的沟通技巧 → 案例:如何听懂老板的“没有说出来的意思”? ◇ 秘书让领导刮目相看、获得信任? ◇ 如何与你的上司协调而不帮倒忙? ◇ 秘书人员如何与各种上司相处? ◇ 问题:我的上级调走了怎么办? → 案例:领导让我难为情,我该怎么办? → 案例:如何与同事或下级相处? → 案例:有人在你面前抱怨你的领导该怎么办? ◇ 讨论:秘书应当如何发挥自身优势起好协调作用? 七、办公室5S及办公用品管理 ◇ 整理、整顿、清扫、清洁、修养 ◇ 文件处理流程化 ◇ 办公用品申购、领用 ◇ 维护各类办公设备的正常使用 八、时间管理及工作统筹技巧 ◇ 时间管理的误区 ◇ 时间管理的原则 √目标管理与80/20法则 √缓急轻重的优先管理 √个人时间与领导工作时间计划与安排 ◇ 秘书时间管理小窍门 ◇ 宾客接待与电话处理 ◇ 自我情绪控制与压力管理 九、访客接待 ◇ 接待客人流程 ◇ 接待重要客户的注意事项 ◇ 来访电话对策 → 案例分析一、二、三 十、如何成为上司得力助手 ◇ 优秀秘书的核心竞争力 ◇ 知己知彼:分析上司的特点 ◇ 如何对待不同类型的上司 ◇ 站在下级的位置上思考上级的事 ◇ 与上级相处三大注意事项 ◇ 上司的行程安排 十一、商务礼仪与职业形象塑造 1、个人形象塑造及礼仪 ◇ 着装的TPO原则 ◇ 女士着装的要点 ◇ 男士着装的规范 ◇ 仪容礼仪规范 ◇ 化妆的礼仪 ◇ 站、坐、行的礼仪规范 ◇ 恰当的肢体语言 2、 基本社交礼仪 ◇ 见面介绍的礼仪 ◇ 问候的礼仪 ◇ 名片的使用 ◇ 日常商务活动中的礼仪规范 ◇ 与工作有关的文体活动中的礼仪规范 3、 商务宴请礼仪 ◇ 中餐礼仪 ◇ 西餐礼仪 ◇ 自助餐礼仪 ◇ 餐饮礼仪禁忌 4、 电话礼仪 ◇ 接听电话的基本原则 ◇ 接听电话的几项注意 ◇ 拨打电话的几大要点 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 讲 师 介 绍:李 革 增 深圳管理咨询行业协会成员;深圳外商投资协会讲师、香港光华管理学院客座教授; 十多年从事企业管理与咨询工作的经验,在德隆集团、深高速、深南招商集团等大型集团 公司及管理顾问公司历任市场经理、行政总监、培训总监等职位。对沟通技巧、客户服务、 行政统筹、企业文化等方面具有良好的培训与辅导经验;具有深厚的理论知识与丰富的实 践操作能力;注重对企业实际问题的分析和解决、讲求实效性和适用性。 擅长课程:《职业经理人资格认证》、《领导力训练》、《企业中层管理技能培训》 《时间管理》、《目标管理》、《企业文化》、《沟通技巧》、《高级文秘职业素质修 养》等。 培训特色:以互动、情景式培训见长,注重受训人员的感悟及参与,通过各种实际 案例及管理游戏等方式充分调动参训人员的培训热情。 曾培训或咨询过的企业有:中国电信、青岛中化集团、中石油、桑菲通讯、华侨城 集团、奥林巴斯、金碟软件(中国)有限公司、厦门航空、苏州三星电子、广东移动通 信、蛇口南顺面粉、深南招商集团、深高速、深圳中汽租赁有限公司、深圳恒波通讯、 深圳华展国际、三洋机电等。 |
From: nick k. <nk...@ze...> - 2007-06-19 18:45:58
|
(I thought I should send my response to the entire list as well...sorry for the duplicate e-mail Ethan) On Jun 19, 2007, at 2:24 PM, Ethan Glasser-Camp wrote: > How did you build chains using ODE? (This is personal curiosity; the > most effective chains I've been able to build have been hinge joint + > slider, but that's only in 2D.) Thanks Ethan. I basically based my chains on the examples that come with the ODE distribution (specifically "ode/test/test_chain1.c"). I've included my (not-very-well commented) code below. I model each chain as a GeomCapsule and attach them to each other using ball joints. I'm able to get 20 links in the chain without a problem, and with expected bending behavior (screenshot: http://zeitkunst.org/ media/images/chains.png). Applying all types of forces to the chain gives reasonably expected movement and bending of the chains. > I'm not sure but this looks like you should be using some kind of > motor instead of computing forces like this. Does anyone have good references for using motors? I've looked a bit at the examples on the PyODE website, but would appreciate other suggestions. Thanks, nick xPosition, yPosition, zPosition = initialPosition for linkNumber in range(self.numLinks): link = ode.Body(self.world) M = ode.Mass() M.setBox(density, size[0], size[1], size[2]) M.adjust(0.5) link.setMass(M) # offset the start position by half of the y dimension k = (linkNumber * size[1]) + (initialPosition[1] + size [1]/2.0) link.setPosition((initialPosition[0], k, initialPosition [2])) link.currentPosition = (initialPosition[0], k, initialPosition[2]) yPosition += size[1] - 0.1 self.bodies.append(link) geom = ode.GeomCapsule(self.space, radius = self.size[1]/ 2.0, length=self.size[0]) geom.setBody(link) self.geom.append(geom) self.bodyHoldPosition = array((initialPosition[0], k, initialPosition[2])) # create joint with creature joint = ode.BallJoint(self.world) joint.attach(self.bodies[0], self.creatureBody) joint.setAnchor((initialPosition[0], initialPosition[1] - size[1]/2.0, initialPosition[2])) self.joints.append(joint) for linkNumber in range(self.numLinks - 1): joint = ode.BallJoint(self.world) joint.attach(self.bodies[linkNumber], self.bodies [linkNumber + 1]) k = (linkNumber + 1) * size[1] + initialPosition[1] - size[1]/2.0 joint.setAnchor((initialPosition[0], k, initialPosition [2])) self.joints.append(joint) |
From: Ethan Glasser-C. <gl...@cs...> - 2007-06-19 18:25:19
|
Sorry Nick for the duplicate mail.. nick knouf wrote: > I have a rectangular box (mostly in the xz plane) with 4 chains in > the +y direction, attached with ball joints on the corners of the > box. I want to use the chains to hold the box above the floor. How did you build chains using ODE? (This is personal curiosity; the most effective chains I've been able to build have been hinge joint + slider, but that's only in 2D.) > Pseudo-code for the holding algorithm (in both cases described above) > is as follows: > > currentVelocity = finalChainElement.getLinearVel() > currentPosition = finalChainElement.getPosition() > desiredPosition = holdPosition > > desiredVelocity = desiredPosition - currentPosition > desiredAccel = desiredVeclocity - currentVelocity > finalChainElement.addForce(holdingMass * desiredAcel + holdingForce) I'm not sure but this looks like you should be using some kind of motor instead of computing forces like this. Ethan |
From: nick k. <nk...@ze...> - 2007-06-19 17:04:19
|
Hello PyODE list, I posted something similar to this on the ODE list recently but didn't receive any responses, so I thought I'd try here (also since I'm using PyODE). I have a rectangular box (mostly in the xz plane) with 4 chains in the +y direction, attached with ball joints on the corners of the box. I want to use the chains to hold the box above the floor. I'm able to do this without a problem; the box hovers above the ground with the chains taut and the top element of the chain within +-0.01 or so of the desired position. But, let's say I want to pull up one corner of the box by applying work to one chain. I can do this, the box corner moves up, I get a new desired hold position. But my holding algorithm does not hold the chain at the desired position; the x and z components hover within +- 0.01 of the desired position, but once I stop applying the additional force, the corner slips downward (-y), with the y position often off by -4.0 or more. Pseudo-code for the holding algorithm (in both cases described above) is as follows: currentVelocity = finalChainElement.getLinearVel() currentPosition = finalChainElement.getPosition() desiredPosition = holdPosition desiredVelocity = desiredPosition - currentPosition desiredAccel = desiredVeclocity - currentVelocity finalChainElement.addForce(holdingMass * desiredAcel + holdingForce) Is there something in my algorithm that seems wrong? I've tried various combinations of lookahead and PID controllers to no avail. I'm using the latest PyODE and ODE 0.8. Thanks for any help! This should be simple and it's been stumping me for a while... nick |
From: Ethan Glasser-C. <gl...@cs...> - 2007-06-19 07:47:46
|
Hi guys, I've been trying to put together another example along the lines of tutorial3.py, but including trimeshes. Attached is what I have right now. 1) I don't really know anything about OpenGL. Is there some way to make the trimeshes not coal black, but have some kind of shading, to make it clearer what's going on? I could just used glutSolidOctahedron but it seems like using the getTriangle() function would be better in terms of testing and code coverage :) 2) Sometimes the simulation just "explodes" all of a sudden, and I get a ton of LCP internal errors.. any idea why? Ethan |
From: Chris B. <chr...@gm...> - 2007-06-18 23:12:20
|
On 18/06/07, Chris Spencer <chr...@gm...> wrote: > On 6/18/07, Jon Watte (ODE) <hpl...@mi...> wrote: > > ODE is not thread safe. You can only manipulate objects when you know > > that the world collision/simulation isn't running. > > ODE does not have any known bugs in memory management. > > The bug I'm referring to is the one reported at > https://sourceforge.net/tracker/?func=detail&atid=382799&aid=1566350&group_id=24884 > > Even for thread-safe code, ODE tends to crash quite regularly when I > try to add or remove large numbers of bodies/geoms from a simulation. One common problem with large number of bodies is running out of stack space. You can increase the stack space available to your program by running 'ulimit -s unlimited' from your shell, before you start your ODE program. But if you run python under gdb or similar you'll be able to see exactly which function is crashing (the stack problem is dSolveLCP). |
From: Chris S. <chr...@gm...> - 2007-06-18 21:09:03
|
On 6/18/07, Jon Watte (ODE) <hpl...@mi...> wrote: > ODE is not thread safe. You can only manipulate objects when you know > that the world collision/simulation isn't running. > ODE does not have any known bugs in memory management. The bug I'm referring to is the one reported at https://sourceforge.net/tracker/?func=detail&atid=382799&aid=1566350&group_id=24884 Even for thread-safe code, ODE tends to crash quite regularly when I try to add or remove large numbers of bodies/geoms from a simulation. Regards, Chris |
From: Jon W. (ODE) <hpl...@mi...> - 2007-06-18 20:40:05
|
ODE is not thread safe. You can only manipulate objects when you know that the world collision/simulation isn't running. ODE does not have any known bugs in memory management. If you need to manipulate objects, then you should double-buffer the state, and pick up any requested changes before you call collide/step the next time in the simulation thread. Cheers, / h+ Chris Spencer wrote: > I'm unable to run a small ODE simulation for more than a couple > minutes before ODE crashes with the error: > > ODE INTERNAL ERROR 2: invalid operation for locked space in dGeomMoved() > > Is this caused by ODE's buggy memory management, or is it something > I'm doing? I'm manipulating ODE objects in a separate thread from the > one running the ODE simulation. Could that be causing the error? What > would be the best way to update a simulation from multiple threads > without having to pause the simulation? > > |
From: Chris S. <chr...@gm...> - 2007-06-18 17:53:22
|
Yep, that's exactly what I had to do to fix the problem. Thanks. Chris On 6/18/07, Chris Bainbridge <chr...@gm...> wrote: > On 17/06/07, Chris Spencer <chr...@gm...> wrote: > > I'm unable to run a small ODE simulation for more than a couple > > minutes before ODE crashes with the error: > > > > ODE INTERNAL ERROR 2: invalid operation for locked space in dGeomMoved() > > > > Is this caused by ODE's buggy memory management, or is it something > > I'm doing? I'm manipulating ODE objects in a separate thread from the > > one running the ODE simulation. Could that be causing the error? What > > would be the best way to update a simulation from multiple threads > > without having to pause the simulation? > > You probably need to serialise all ODE operations in a single thread. > Send messages to that thread to update the ODE objects, and call > World.step() from that thread when your message queue is empty. > Without examining the source in details it's impossible to tell the > effect of changing objects and using objects in parallel. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Pyode-user mailing list > Pyo...@li... > https://lists.sourceforge.net/lists/listinfo/pyode-user > |
From: Chris B. <chr...@gm...> - 2007-06-18 12:59:57
|
On 15/06/07, Chris Spencer <chr...@gm...> wrote: > On 6/15/07, Chris Bainbridge <chr...@gm...> wrote: > > > > The problem is that the destructor order is essentially random when gc > > is used. ODE (not pyode) doesn't have any ownership rules for objects, > > and objects point to each other, so deallocating objects causes memory > > protection faults. This is also a problem with C++ ODE code, python > > with gc just aggravates the problem. In my Simulator.__del__ function > > I have something like: > [snip] > > Thanks for the tips. I tried implementing a similar __del__ for my > top-level object, but I still encounter the problem. Are you sure your __del__ function is being called first? You might need to rename it and manually call it from your shutdown function before python starts garbage collecting. > Since it looks like this problem isn't going to be fixed anytime soon, > is there anyway to work around the issue? With my usage, the fault > only happens when the Python process is terminating, but it's stopping > a new process from being spawned. Is there any way to recover from it, > or is this problem fatal? You can ignore the return code? Not very elegant though. You could stop using gc. Python has reference counting anyway, so the only effect is that you need to manually remove cyclic links between your objects from __del__ methods. It's quite easy with the gc module to dump the number of objects of each type and see which ones aren't being destroyed. |
From: Chris B. <chr...@gm...> - 2007-06-18 12:45:01
|
On 17/06/07, Chris Spencer <chr...@gm...> wrote: > I'm unable to run a small ODE simulation for more than a couple > minutes before ODE crashes with the error: > > ODE INTERNAL ERROR 2: invalid operation for locked space in dGeomMoved() > > Is this caused by ODE's buggy memory management, or is it something > I'm doing? I'm manipulating ODE objects in a separate thread from the > one running the ODE simulation. Could that be causing the error? What > would be the best way to update a simulation from multiple threads > without having to pause the simulation? You probably need to serialise all ODE operations in a single thread. Send messages to that thread to update the ODE objects, and call World.step() from that thread when your message queue is empty. Without examining the source in details it's impossible to tell the effect of changing objects and using objects in parallel. |